From 9f6cf4979a0477d4c0eb6a4b407364f1fb6af5ab Mon Sep 17 00:00:00 2001 From: Dmitry Baranovskiy Date: Mon, 28 Sep 2009 09:36:45 +1000 Subject: [PATCH] 1.0 RC2 Fixed bug with text in IE, fixed animation with callback for set, added parsing of RON. --- raphael-min.js | 4 +- raphael.js | 121 ++++++++++++++++++++++--------------------------- 2 files changed, 57 insertions(+), 68 deletions(-) diff --git a/raphael-min.js b/raphael-min.js index 05ef6d8..462a3da 100644 --- a/raphael-min.js +++ b/raphael-min.js @@ -1,7 +1,7 @@ /* - * Raphael 1.0 RC1.6 - JavaScript Vector Library + * Raphael 1.0 RC2 - JavaScript Vector Library * * Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com) * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. */ -window.Raphael=(function(){var X=/[, ]+/,g=document,K=window,O={was:"Raphael" in window,is:window.Raphael},f=function(){return l.apply(f,arguments);},b={},p={"clip-rect":"0 0 10e9 10e9",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},t={"clip-rect":"csv",cx:"number",cy:"number",fill:"colour","fill-opacity":"number","font-size":"number",height:"number",opacity:"number",path:"path",r:"number",rotation:"csv",rx:"number",ry:"number",scale:"csv",stroke:"colour","stroke-opacity":"number","stroke-width":"number",translation:"csv",width:"number",x:"number",y:"number"},u=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup"];f.version="1.0 RC1.6";f.type=(window.SVGAngle||document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");f.svg=!(f.vml=f.type=="VML");f.idGenerator=0;f.fn={};f.is=function(i,e){e=(e+"").toLowerCase();if((e=="object"||e=="undefined")&&typeof i==e){return true;}if(i==null&&e=="null"){return true;}return Object.prototype.toString.call(i).replace(/^\[object\s+|\]$/gi,"").toLowerCase()==e;};f.setWindow=function(e){K=e;g=K.document;};f.hsb2rgb=W(function(ae,ac,ai){if(f.is(ae,"object")&&"h" in ae&&"s" in ae&&"b" in ae){ai=ae.b;ac=ae.s;ae=ae.h;}var Z,aa,aj;if(ai==0){return{r:0,g:0,b:0,hex:"#000"};}if(ae>1||ac>1||ai>1){ae/=255;ac/=255;ai/=255;}var ab=Math.floor(ae*6),af=(ae*6)-ab,Y=ai*(1-ac),R=ai*(1-(ac*af)),ak=ai*(1-(ac*(1-af)));Z=[ai,R,Y,Y,ak,ai,ai][ab];aa=[ak,ai,ai,R,Y,Y,ak][ab];aj=[Y,Y,ak,ai,ai,R,Y][ab];Z*=255;aa*=255;aj*=255;var ag={r:Z,g:aa,b:aj},e=Math.round(Z).toString(16),ad=Math.round(aa).toString(16),ah=Math.round(aj).toString(16);if(e.length==1){e="0"+e;}if(ad.length==1){ad="0"+ad;}if(ah.length==1){ah="0"+ah;}ag.hex="#"+e+ad+ah;return ag;},f);f.rgb2hsb=W(function(e,i,ac){if(f.is(e,"object")&&"r" in e&&"g" in e&&"b" in e){ac=e.b;i=e.g;e=e.r;}if(f.is(e,"string")){var ae=f.getRGB(e);e=ae.r;i=ae.g;ac=ae.b;}if(e>1||i>1||ac>1){e/=255;i/=255;ac/=255;}var ab=Math.max(e,i,ac),R=Math.min(e,i,ac),Z,Y,aa=ab;if(R==ab){return{h:0,s:0,b:ab};}else{var ad=(ab-R);Y=ad/ab;if(e==ab){Z=(i-ac)/ad;}else{if(i==ab){Z=2+((ac-e)/ad);}else{Z=4+((e-i)/ad);}}Z/=6;if(Z<0){Z+=1;}if(Z>1){Z-=1;}}return{h:Z,s:Y,b:aa};},f);f._path2string=function(){var Y="",ab;for(var R=0,Z=this.length;R1000){delete R.cache[R.count.unshift()];}R.count.push(aa);R.cache[aa]=Y.apply(i,Z);return e?e(R.cache[aa]):R.cache[aa];}return R;}f.getRGB=W(function(e){var ae={aliceblue:"#f0f8ff",amethyst:"#96c",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},aa;if((e+"").toLowerCase() in ae){e=ae[(e+"").toLowerCase()];}if(!e){return{r:0,g:0,b:0,hex:"#000"};}if(e=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}var R,Y,ad,ab=(e+"").match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(ab){if(ab[2]){ad=parseInt(ab[2].substring(5),16);Y=parseInt(ab[2].substring(3,5),16);R=parseInt(ab[2].substring(1,3),16);}if(ab[3]){ad=parseInt(ab[3].substring(3)+ab[3].substring(3),16);Y=parseInt(ab[3].substring(2,3)+ab[3].substring(2,3),16);R=parseInt(ab[3].substring(1,2)+ab[3].substring(1,2),16);}if(ab[4]){ab=ab[4].split(/\s*,\s*/);R=parseFloat(ab[0]);Y=parseFloat(ab[1]);ad=parseFloat(ab[2]);}if(ab[5]){ab=ab[5].split(/\s*,\s*/);R=parseFloat(ab[0])*2.55;Y=parseFloat(ab[1])*2.55;ad=parseFloat(ab[2])*2.55;}if(ab[6]){ab=ab[6].split(/\s*,\s*/);R=parseFloat(ab[0]);Y=parseFloat(ab[1]);ad=parseFloat(ab[2]);return f.hsb2rgb(R,Y,ad);}if(ab[7]){ab=ab[7].split(/\s*,\s*/);R=parseFloat(ab[0])*2.55;Y=parseFloat(ab[1])*2.55;ad=parseFloat(ab[2])*2.55;return f.hsb2rgb(R,Y,ad);}ab={r:R,g:Y,b:ad};var i=Math.round(R).toString(16),Z=Math.round(Y).toString(16),ac=Math.round(ad).toString(16);(i.length==1)&&(i="0"+i);(Z.length==1)&&(Z="0"+Z);(ac.length==1)&&(ac="0"+ac);ab.hex="#"+i+Z+ac;aa=ab;}else{aa={r:-1,g:-1,b:-1,hex:"none",error:1};}return aa;},f);f.getColor=function(i){var R=this.getColor.start=this.getColor.start||{h:0,s:1,b:i||0.75},e=this.hsb2rgb(R.h,R.s,R.b);R.h+=0.075;if(R.h>1){R.h=0;R.s-=0.2;if(R.s<=0){this.getColor.start={h:0,s:1,b:R.b};}}return e.hex;};f.getColor.reset=function(){delete this.start;};f.parsePathString=W(function(e){if(!e){return null;}var R={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=[];if(f.is(e,"array")&&f.is(e[0],"array")){i=s(e);}if(!i.length){(e+"").replace(/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(Z,Y,ac){var ab=[],aa=Y.toLowerCase();ac.replace(/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(ae,ad){ad&&ab.push(+ad);});while(ab.length>=R[aa]){i.push([Y].concat(ab.splice(0,R[aa])));if(!R[aa]){break;}}});}i.toString=f._path2string;return i;});var B=W(function(ag){if(!ag){return{x:0,y:0,width:0,height:0};}ag=N(ag);var ad=0,ac=0,Z=[],R=[];for(var aa=0,af=ag.length;aaac){ad=ad-Math.PI*2;}if(!Z&&ac>ad){ac=ac-Math.PI*2;}}else{ad=al[0];ac=al[1];an=al[2];am=al[3];}var ah=ac-ad;if(Math.abs(ah)>ap){var ao=ac,ar=ai,af=aN;ac=ad+ap*(Z&&ac>ad?1:-1);ai=an+at*Math.cos(ac);aN=am+aq*Math.sin(ac);ax=q(ai,aN,at,aq,ak,0,Z,ar,af,[ac,ao,an,am]);}ah=ac-ad;var ab=Math.cos(ad),aM=Math.sin(ad),aa=Math.cos(ac),aL=Math.sin(ac),aA=Math.tan(ah/4),aD=4/3*at*aA,aB=4/3*aq*aA,aJ=[aj,aO],aI=[aj+aD*aM,aO-aB*ab],aH=[ai+aD*aL,aN-aB*aa],aF=[ai,aN];aI[0]=2*aJ[0]-aI[0];aI[1]=2*aJ[1]-aI[1];if(al){return[aI,aH,aF].concat(ax);}else{ax=[aI,aH,aF].concat(ax).join(",").split(",");var av=[];for(var aG=0,aw=ax.length;aG0&&ab<1?ab:0),aa=z(i,e,Y,R,al,ak,ah,ae,Z>0&&Z<1?Z:0);ai=ai.concat(ac.x,aa.x);af=af.concat(ac.y,aa.y);aj=(ak-2*R+e)-(ae-2*ak+R);ag=2*(R-e)-2*(ak-R);ad=e-R;ab=(-ag+Math.sqrt(ag*ag-4*aj*ad))/2/aj;Z=(-ag-Math.sqrt(ag*ag-4*aj*ad))/2/aj;ac=z(i,e,Y,R,al,ak,ah,ae,ab>0&&ab<1?ab:0);aa=z(i,e,Y,R,al,ak,ah,ae,Z>0&&Z<1?Z:0);ai=ai.concat(ac.x,aa.x);af=af.concat(ac.y,aa.y);return{min:{x:Math.min.apply(Math,ai),y:Math.min.apply(Math,af)},max:{x:Math.max.apply(Math,ai),y:Math.max.apply(Math,af)}};}),N=W(function(ak,af){var Z=v(ak),ag=af&&v(af),ah={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},e={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},ab=function(al,am){var i,an;if(!al){return["C",am.x,am.y,am.x,am.y,am.x,am.y];}!(al[0] in {T:1,Q:1})&&(am.qx=am.qy=null);switch(al[0]){case"M":am.X=al[1];am.Y=al[2];break;case"A":al=["C"].concat(q.apply(0,[am.x,am.y].concat(al.slice(1))));break;case"S":i=am.x+(am.x-(am.bx||am.x));an=am.y+(am.y-(am.by||am.y));al=["C",i,an].concat(al.slice(1));break;case"T":am.qx=am.x+(am.x-(am.qx||am.x));am.qy=am.y+(am.y-(am.qy||am.y));al=["C"].concat(w(am.x,am.y,am.qx,am.qy,al[1],al[2]));break;case"Q":am.qx=al[1];am.qy=al[2];al=["C"].concat(w(am.x,am.y,al[1],al[2],al[3],al[4]));break;case"L":al=["C"].concat(d(am.x,am.y,al[1],al[2]));break;case"H":al=["C"].concat(d(am.x,am.y,al[1],am.y));break;case"V":al=["C"].concat(d(am.x,am.y,am.x,al[1]));break;case"Z":al=["C"].concat(d(am.x,am.y,am.X,am.Y));break;}return al;},R=function(al,am){if(al[am].length>7){al[am].shift();var an=al[am];while(an.length){al.splice(am++,0,["C"].concat(an.splice(0,6)));}al.splice(am,1);ai=Math.max(Z.length,ag&&ag.length||0);}},Y=function(ap,ao,am,al,an){if(ap&&ao&&ap[an][0]=="M"&&ao[an][0]!="M"){ao.splice(an,0,["M",al.x,al.y]);am.bx=0;am.by=0;am.x=ap[an][1];am.y=ap[an][2];ai=Math.max(Z.length,ag&&ag.length||0);}};for(var ad=0,ai=Math.max(Z.length,ag&&ag.length||0);ad3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},a=function(e,R){var i=this;for(var Y in R){if(R.hasOwnProperty(Y)&&!(Y in e)){switch(typeof R[Y]){case"function":(function(Z){e[Y]=e===i?Z:function(){return Z.apply(i,arguments);};})(R[Y]);break;case"object":e[Y]=e[Y]||{};a.call(this,e[Y],R[Y]);break;default:e[Y]=R[Y];break;}}}};if(f.svg){b.svgns="http://www.w3.org/2000/svg";b.xlink="http://www.w3.org/1999/xlink";var M=function(e){return +e+(Math.floor(e)==e)*0.5;};var y=function(aa){for(var R=0,Y=aa.length;R0.25){aa=Math.sqrt(0.25-Math.pow(ac-0.5,2))+0.5;}}return"";});ai=ai.split(/\s*\-\s*/);if(af=="linear"){var ab=ai.shift();ab=-parseFloat(ab);if(isNaN(ab)){return null;}var Z=[0,0,Math.cos(ab*Math.PI/180),Math.sin(ab*Math.PI/180)],ah=1/(Math.max(Math.abs(Z[2]),Math.abs(Z[3]))||1);Z[2]*=ah;Z[3]*=ah;if(Z[2]<0){Z[0]=-Z[2];Z[2]=0;}if(Z[3]<0){Z[1]=-Z[3];Z[3]=0;}}var ae=n(ai);if(!ae){return null;}var R=A(af+"Gradient");R.id="r"+(f.idGenerator++).toString(36);af=="radial"?A(R,{fx:ac,fy:aa}):A(R,{x1:Z[0],y1:Z[1],x2:Z[2],y2:Z[3]});e.defs.appendChild(R);for(var ad=0,aj=ae.length;adac.height)&&(ac.height=ab.y+ab.height-ac.y);}}Y&&this.hide();return ac;};m.prototype.attr=function(){if(arguments.length==1&&f.is(arguments[0],"string")){if(arguments[0]=="translation"){return this.translate();}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}return this.attrs[arguments[0]];}if(arguments.length==1&&f.is(arguments[0],"array")){var e={};for(var i in arguments[0]){if(arguments[0].hasOwnProperty(i)){e[arguments[0][i]]=this.attrs[arguments[0][i]];}}return e;}if(arguments.length==2){var R={};R[arguments[0]]=arguments[1];E(this,R);}else{if(arguments.length==1&&f.is(arguments[0],"object")){E(this,arguments[0]);}}return this;};m.prototype.toFront=function(){this.node.parentNode.appendChild(this.node);return this;};m.prototype.toBack=function(){if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);}return this;};m.prototype.insertAfter=function(e){if(e.node.nextSibling){e.node.parentNode.insertBefore(this.node,e.node.nextSibling);}else{e.node.parentNode.appendChild(this.node);}return this;};m.prototype.insertBefore=function(e){var i=e.node;i.parentNode.insertBefore(this.node,i);return this;};var C=function(i,e,aa,Z){e=M(e);aa=M(aa);var Y=A("circle");i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={cx:e,cy:aa,r:Z,fill:"none",stroke:"#000"};R.type="circle";A(Y,R.attrs);return R;};var H=function(R,e,ac,i,aa,ab){e=M(e);ac=M(ac);var Z=A("rect");R.canvas&&R.canvas.appendChild(Z);var Y=new m(Z,R);Y.attrs={x:e,y:ac,width:i,height:aa,r:ab||0,rx:ab||0,ry:ab||0,fill:"none",stroke:"#000"};Y.type="rect";A(Z,Y.attrs);return Y;};var h=function(i,e,ab,aa,Z){e=M(e);ab=M(ab);var Y=A("ellipse");i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={cx:e,cy:ab,rx:aa,ry:Z,fill:"none",stroke:"#000"};R.type="ellipse";A(Y,R.attrs);return R;};var o=function(R,ab,e,ac,i,aa){var Z=A("image");A(Z,{x:e,y:ac,width:i,height:aa,preserveAspectRatio:"none"});Z.setAttributeNS(R.xlink,"href",ab);R.canvas&&R.canvas.appendChild(Z);var Y=new m(Z,R);Y.attrs={x:e,y:ac,width:i,height:aa,src:ab};Y.type="image";return Y;};var G=function(i,e,aa,Z){var Y=A("text");A(Y,{x:e,y:aa,"text-anchor":"middle"});i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={x:e,y:aa,"text-anchor":"middle",text:Z,font:p.font,stroke:"none",fill:"#000"};R.type="text";E(R,R.attrs);return R;};var D=function(i,e){this.width=i||this.width;this.height=e||this.height;this.canvas.setAttribute("width",this.width);this.canvas.setAttribute("height",this.height);return this;};var l=function(){var Z=F.apply(null,arguments),R=Z&&Z.container,ab=Z.x,aa=Z.y,Y=Z.width,ac=Z.height;if(!R){throw new Error("SVG container not found.");}b.canvas=A("svg");var e=b.canvas,ad=e.style;e.setAttribute("width",Y||512);b.width=Y||512;e.setAttribute("height",ac||342);b.height=ac||342;if(R==1){g.body.appendChild(e);ad.position="absolute";ad.left=ab+"px";ad.top=aa+"px";}else{if(R.firstChild){R.insertBefore(e,R.firstChild);}else{R.appendChild(e);}}R={canvas:e,clear:function(){while(this.canvas.firstChild){this.canvas.removeChild(this.canvas.firstChild);}this.desc=A("desc");this.defs=A("defs");this.desc.appendChild(g.createTextNode("Created with Rapha\u00ebl"));this.canvas.appendChild(this.desc);this.canvas.appendChild(this.defs);}};for(var i in b){if(b.hasOwnProperty(i)){if(i!="create"){R[i]=b[i];}}}a.call(R,R,f.fn);R.clear();R.raphael=f;return R;};b.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);};}if(f.vml){var x=function(ab){var Z=N(ab);for(var R=0,Y=Z.length;R1&&(i=1);ah.opacity=i;}ai.fill&&(ah.on=true);if(ah.on==null||ai.fill=="none"){ah.on=false;}if(ah.on&&ai.fill){var R=ai.fill.match(/^url\(([^\)]+)\)$/i);if(R){ah.src=R[1];ah.type="tile";}else{ah.color=f.getRGB(ai.fill).hex;ah.src="";ah.type="solid";if(f.getRGB(ai.fill).error&&(an.type in {circle:1,ellipse:1}||(ai.fill+"").charAt(0)!="r")&&L(an,ai.fill)){aj.fill="none";aj.gradient=ai.fill;}}}ak&&ag.appendChild(ah);var Z=(ag.getElementsByTagName("stroke")&&ag.getElementsByTagName("stroke")[0]),al=false;!Z&&(al=Z=U("stroke"));if((ai.stroke&&ai.stroke!="none")||ai["stroke-width"]||ai["stroke-opacity"]!=null||ai["stroke-dasharray"]||ai["stroke-miterlimit"]||ai["stroke-linejoin"]||ai["stroke-linecap"]){Z.on=true;}(ai.stroke=="none"||Z.on==null||ai.stroke==0||ai["stroke-width"]==0)&&(Z.on=false);Z.on&&ai.stroke&&(Z.color=f.getRGB(ai.stroke).hex);var i=((+aj["stroke-opacity"]+1||2)-1)*((+aj.opacity+1||2)-1);i<0&&(i=0);i>1&&(i=1);Z.opacity=i;ai["stroke-linejoin"]&&(Z.joinstyle=ai["stroke-linejoin"]||"miter");Z.miterlimit=ai["stroke-miterlimit"]||8;ai["stroke-linecap"]&&(Z.endcap={butt:"flat",square:"square",round:"round"}[ai["stroke-linecap"]]||"miter");ai["stroke-width"]&&(Z.weight=(parseFloat(ai["stroke-width"])||1)*12/16);if(ai["stroke-dasharray"]){var af={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};Z.dashstyle=af[ai["stroke-dasharray"]]||"";}al&&ag.appendChild(Z);}if(an.type=="text"){var ab=b.span.style;aj.font&&(ab.font=aj.font);aj["font-family"]&&(ab.fontFamily=aj["font-family"]);aj["font-size"]&&(ab.fontSize=aj["font-size"]);aj["font-weight"]&&(ab.fontWeight=aj["font-weight"]);aj["font-style"]&&(ab.fontStyle=aj["font-style"]);an.node.string&&(b.span.innerHTML=an.node.string.replace(/"));an.W=aj.w=b.span.offsetWidth;an.H=aj.h=b.span.offsetHeight;an.X=aj.x;an.Y=aj.y+Math.round(an.H/2);switch(aj["text-anchor"]){case"start":an.node.style["v-text-align"]="left";an.bbx=Math.round(an.W/2);break;case"end":an.node.style["v-text-align"]="right";an.bbx=-Math.round(an.W/2);break;default:an.node.style["v-text-align"]="center";break;}}};var L=function(e,ac){e.attrs=e.attrs||{};var ad=e.attrs,af=e.node.getElementsByTagName("fill"),aa="linear",ab=".5 .5";e.attrs.gradient=ac;ac=(ac+"").replace(/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(ah,ai,i){aa="radial";if(ai&&i){ai=parseFloat(ai);i=parseFloat(i);if(Math.pow(ai-0.5,2)+Math.pow(i-0.5,2)>0.25){i=Math.sqrt(0.25-Math.pow(ai-0.5,2))+0.5;}ab=ai+" "+i;}return"";});ac=ac.split(/\s*\-\s*/);if(aa=="linear"){var R=ac.shift();R=-parseFloat(R);if(isNaN(R)){return null;}}var Z=n(ac);if(!Z){return null;}e=e.shape||e.node;af=af[0]||U("fill");if(Z.length){af.on=true;af.method="none";af.type=(aa=="radial")?"gradientradial":"gradient";af.color=Z[0].color;af.color2=Z[Z.length-1].color;var ag=[];for(var Y=0,ae=Z.length;Y');};}catch(T){var U=function(e){return g.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var l=function(){var Y=F.apply(null,arguments),i=Y.container,ae=Y.height,af,R=Y.width,ad=Y.x,ac=Y.y;if(!i){throw new Error("VML container not found.");}var aa={},ab=aa.canvas=g.createElement("div"),Z=ab.style;R=parseFloat(R)||512;ae=parseFloat(ae)||342;aa.width=R;aa.height=ae;aa.coordsize=R+" "+ae;aa.coordorigin="0 0";aa.span=g.createElement("span");af=aa.span.style;ab.appendChild(aa.span);af.position="absolute";af.left="-99999px";af.top="-99999px";af.padding=0;af.margin=0;af.lineHeight=1;af.display="inline";Z.width=R+"px";Z.height=ae+"px";Z.position="absolute";Z.clip="rect(0 "+R+"px "+ae+"px 0)";if(i==1){g.body.appendChild(ab);Z.left=ad+"px";Z.top=ac+"px";i={style:{width:R,height:ae}};}else{i.style.width=R;i.style.height=ae;if(i.firstChild){i.insertBefore(ab,i.firstChild);}else{i.appendChild(ab);}}for(var e in b){if(b.hasOwnProperty(e)){aa[e]=b[e];}}a.call(aa,aa,f.fn);aa.clear=function(){while(ab.firstChild){ab.removeChild(ab.firstChild);}};aa.raphael=f;return aa;};b.remove=function(){this.canvas.parentNode.removeChild(this.canvas);};}if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]){b.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){e.remove();});};}else{b.safari=function(){};}var j=(function(){if(g.addEventListener){return function(Z,R,i,e){var Y=function(aa){return i.call(e,aa);};Z.addEventListener(R,Y,false);return function(){Z.removeEventListener(R,Y,false);return true;};};}else{if(g.attachEvent){return function(aa,Y,R,i){var Z=function(ab){return R.call(i,ab||K.event);};aa.attachEvent("on"+Y,Z);var e=function(){aa.detachEvent("on"+Y,Z);return true;};if(Y=="mouseover"){aa.attachEvent("onmouseenter",Z);return function(){aa.detachEvent("onmouseenter",Z);return e();};}else{if(Y=="mouseout"){aa.attachEvent("onmouseleave",Z);return function(){aa.detachEvent("onmouseleave",Z);return e();};}}return e;};}}})();for(var P=u.length;P--;){(function(e){m.prototype[e]=function(i){if(f.is(i,"function")){this.events=this.events||{};this.events[e]=this.events[e]||{};this.events[e][i]=this.events[e][i]||[];this.events[e][i].push(j(this.shape||this.node,e,i,this));}return this;};m.prototype["un"+e]=function(i){this.events&&this.events[e]&&this.events[e][i]&&this.events[e][i].length&&this.events[e][i].shift()()&&!this.events[e][i].length&&delete this.events[e][i];};})(u[P]);}b.circle=function(e,R,i){return C(this,e,R,i);};b.rect=function(e,Z,i,R,Y){return H(this,e,Z,i,R,Y);};b.ellipse=function(e,Y,R,i){return h(this,e,Y,R,i);};b.path=function(e){e&&!f.is(e,"string")&&!f.is(e[0],"array")&&(e+="");return V(f.format.apply(f,arguments),this);};b.image=function(Y,e,Z,i,R){return o(this,Y,e,Z,i,R);};b.text=function(e,R,i){return G(this,e,R,i);};b.set=function(e){arguments.length>1&&(e=Array.prototype.splice.call(arguments,0,arguments.length));return new k(e);};b.setSize=D;m.prototype.stop=function(){clearTimeout(this.animation_in_progress);return this;};m.prototype.scale=function(aj,ai,Y,R){if(aj==null&&ai==null){return{x:this._.sx,y:this._.sy,toString:function(){return this.x+" "+this.y;}};}ai=ai||aj;!+ai&&(ai=aj);var an,al,am,ak,aA=this.attrs;if(aj!=0){var ag=this.getBBox(),ad=ag.x+ag.width/2,aa=ag.y+ag.height/2,az=aj/this._.sx,ay=ai/this._.sy;Y=(+Y||Y==0)?Y:ad;R=(+R||R==0)?R:aa;var af=Math.round(aj/Math.abs(aj)),ac=Math.round(ai/Math.abs(ai)),aq=this.node.style,aC=Y+(ad-Y)*af*az,aB=R+(aa-R)*ac*ay;switch(this.type){case"rect":case"image":var ae=aA.width*af*az,ap=aA.height*ac*ay,ah=aA.r*Math.min(az,ay),ab=aC-ae/2,Z=aB-ap/2;this.attr({width:ae,height:ap,x:ab,y:Z,r:ah});break;case"circle":case"ellipse":this.attr({rx:aA.rx*az,ry:aA.ry*ay,r:aA.r*Math.min(az,ay),cx:aC,cy:aB});break;case"path":var at=c(aA.path),au=true;for(var aw=0,ao=at.length;aw":function(e){return Math.pow(e-1,3)+1;},"<>":function(e){e=e*2;if(e<1){return Math.pow(e,3)/2;}e-=2;return(Math.pow(e,3)+2)/2;},backIn:function(i){var e=1.70158;return i*i*((e+1)*i-e);},backOut:function(i){i=i-1;var e=1.70158;return i*i*((e+1)*i+e)+1;},elastic:function(R){if(R==0||R==1){return R;}var i=0.3,e=i/4;return Math.pow(2,-10*R)*Math.sin((R-e)*(2*Math.PI)/i)+1;},bounce:function(Y){var i=7.5625,R=2.75,e;if(Y<(1/R)){e=i*Y*Y;}else{if(Y<(2/R)){Y-=(1.5/R);e=i*Y*Y+0.75;}else{if(Y<(2.5/R)){Y-=(2.25/R);e=i*Y*Y+0.9375;}else{Y-=(2.625/R);e=i*Y*Y+0.984375;}}}return e;}};m.prototype.animate=function(ar,ai,ah,Z){clearTimeout(this.animation_in_progress);if(f.is(ah,"function")||!ah){Z=ah||null;}var al={},R={},af={},ae={x:0,y:0};for(var aj in ar){if(ar.hasOwnProperty(aj)){if(aj in t){al[aj]=this.attr(aj);(al[aj]==null)&&(al[aj]=p[aj]);R[aj]=ar[aj];switch(t[aj]){case"number":af[aj]=(R[aj]-al[aj])/ai;break;case"colour":al[aj]=f.getRGB(al[aj]);var ak=f.getRGB(R[aj]);af[aj]={r:(ak.r-al[aj].r)/ai,g:(ak.g-al[aj].g)/ai,b:(ak.b-al[aj].b)/ai};break;case"path":var aa=N(al[aj],R[aj]);al[aj]=aa[0];R[aj]=aa[1];af[aj]=[];for(var an=0,ad=al[aj].length;an255?255:+i;},ab=this;(function ao(){var au=new Date-Y,aC={},at;if(au1||ac>1||ai>1){ae/=255;ac/=255;ai/=255;}var ab=Math.floor(ae*6),af=(ae*6)-ab,Y=ai*(1-ac),R=ai*(1-(ac*af)),ak=ai*(1-(ac*(1-af)));Z=[ai,R,Y,Y,ak,ai,ai][ab];aa=[ak,ai,ai,R,Y,Y,ak][ab];aj=[Y,Y,ak,ai,ai,R,Y][ab];Z*=255;aa*=255;aj*=255;var ag={r:Z,g:aa,b:aj},e=Math.round(Z).toString(16),ad=Math.round(aa).toString(16),ah=Math.round(aj).toString(16);if(e.length==1){e="0"+e;}if(ad.length==1){ad="0"+ad;}if(ah.length==1){ah="0"+ah;}ag.hex="#"+e+ad+ah;return ag;},f);f.rgb2hsb=W(function(e,i,ac){if(f.is(e,"object")&&"r" in e&&"g" in e&&"b" in e){ac=e.b;i=e.g;e=e.r;}if(f.is(e,"string")){var ae=f.getRGB(e);e=ae.r;i=ae.g;ac=ae.b;}if(e>1||i>1||ac>1){e/=255;i/=255;ac/=255;}var ab=Math.max(e,i,ac),R=Math.min(e,i,ac),Z,Y,aa=ab;if(R==ab){return{h:0,s:0,b:ab};}else{var ad=(ab-R);Y=ad/ab;if(e==ab){Z=(i-ac)/ad;}else{if(i==ab){Z=2+((ac-e)/ad);}else{Z=4+((e-i)/ad);}}Z/=6;if(Z<0){Z+=1;}if(Z>1){Z-=1;}}return{h:Z,s:Y,b:aa};},f);f._path2string=function(){var Y="",ab;for(var R=0,Z=this.length;R1000){delete R.cache[R.count.unshift()];}R.count.push(aa);R.cache[aa]=Y.apply(i,Z);return e?e(R.cache[aa]):R.cache[aa];}return R;}f.getRGB=W(function(e){var ae={aliceblue:"#f0f8ff",amethyst:"#96c",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},aa;if((e+"").toLowerCase() in ae){e=ae[(e+"").toLowerCase()];}if(!e){return{r:0,g:0,b:0,hex:"#000"};}if(e=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}var R,Y,ad,ab=(e+"").match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(ab){if(ab[2]){ad=parseInt(ab[2].substring(5),16);Y=parseInt(ab[2].substring(3,5),16);R=parseInt(ab[2].substring(1,3),16);}if(ab[3]){ad=parseInt(ab[3].substring(3)+ab[3].substring(3),16);Y=parseInt(ab[3].substring(2,3)+ab[3].substring(2,3),16);R=parseInt(ab[3].substring(1,2)+ab[3].substring(1,2),16);}if(ab[4]){ab=ab[4].split(/\s*,\s*/);R=parseFloat(ab[0]);Y=parseFloat(ab[1]);ad=parseFloat(ab[2]);}if(ab[5]){ab=ab[5].split(/\s*,\s*/);R=parseFloat(ab[0])*2.55;Y=parseFloat(ab[1])*2.55;ad=parseFloat(ab[2])*2.55;}if(ab[6]){ab=ab[6].split(/\s*,\s*/);R=parseFloat(ab[0]);Y=parseFloat(ab[1]);ad=parseFloat(ab[2]);return f.hsb2rgb(R,Y,ad);}if(ab[7]){ab=ab[7].split(/\s*,\s*/);R=parseFloat(ab[0])*2.55;Y=parseFloat(ab[1])*2.55;ad=parseFloat(ab[2])*2.55;return f.hsb2rgb(R,Y,ad);}ab={r:R,g:Y,b:ad};var i=Math.round(R).toString(16),Z=Math.round(Y).toString(16),ac=Math.round(ad).toString(16);(i.length==1)&&(i="0"+i);(Z.length==1)&&(Z="0"+Z);(ac.length==1)&&(ac="0"+ac);ab.hex="#"+i+Z+ac;aa=ab;}else{aa={r:-1,g:-1,b:-1,hex:"none",error:1};}return aa;},f);f.getColor=function(i){var R=this.getColor.start=this.getColor.start||{h:0,s:1,b:i||0.75},e=this.hsb2rgb(R.h,R.s,R.b);R.h+=0.075;if(R.h>1){R.h=0;R.s-=0.2;if(R.s<=0){this.getColor.start={h:0,s:1,b:R.b};}}return e.hex;};f.getColor.reset=function(){delete this.start;};f.parsePathString=W(function(e){if(!e){return null;}var R={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=[];if(f.is(e,"array")&&f.is(e[0],"array")){i=s(e);}if(!i.length){(e+"").replace(/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(Z,Y,ac){var ab=[],aa=Y.toLowerCase();ac.replace(/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(ae,ad){ad&&ab.push(+ad);});while(ab.length>=R[aa]){i.push([Y].concat(ab.splice(0,R[aa])));if(!R[aa]){break;}}});}i.toString=f._path2string;return i;});var B=W(function(ag){if(!ag){return{x:0,y:0,width:0,height:0};}ag=N(ag);var ad=0,ac=0,Z=[],R=[];for(var aa=0,af=ag.length;aaac){ad=ad-Math.PI*2;}if(!Z&&ac>ad){ac=ac-Math.PI*2;}}else{ad=al[0];ac=al[1];an=al[2];am=al[3];}var ah=ac-ad;if(Math.abs(ah)>ap){var ao=ac,ar=ai,af=aN;ac=ad+ap*(Z&&ac>ad?1:-1);ai=an+at*Math.cos(ac);aN=am+aq*Math.sin(ac);ax=q(ai,aN,at,aq,ak,0,Z,ar,af,[ac,ao,an,am]);}ah=ac-ad;var ab=Math.cos(ad),aM=Math.sin(ad),aa=Math.cos(ac),aL=Math.sin(ac),aA=Math.tan(ah/4),aD=4/3*at*aA,aB=4/3*aq*aA,aJ=[aj,aO],aI=[aj+aD*aM,aO-aB*ab],aH=[ai+aD*aL,aN-aB*aa],aF=[ai,aN];aI[0]=2*aJ[0]-aI[0];aI[1]=2*aJ[1]-aI[1];if(al){return[aI,aH,aF].concat(ax);}else{ax=[aI,aH,aF].concat(ax).join(",").split(",");var av=[];for(var aG=0,aw=ax.length;aG0&&ab<1?ab:0),aa=z(i,e,Y,R,al,ak,ah,ae,Z>0&&Z<1?Z:0);ai=ai.concat(ac.x,aa.x);af=af.concat(ac.y,aa.y);aj=(ak-2*R+e)-(ae-2*ak+R);ag=2*(R-e)-2*(ak-R);ad=e-R;ab=(-ag+Math.sqrt(ag*ag-4*aj*ad))/2/aj;Z=(-ag-Math.sqrt(ag*ag-4*aj*ad))/2/aj;ac=z(i,e,Y,R,al,ak,ah,ae,ab>0&&ab<1?ab:0);aa=z(i,e,Y,R,al,ak,ah,ae,Z>0&&Z<1?Z:0);ai=ai.concat(ac.x,aa.x);af=af.concat(ac.y,aa.y);return{min:{x:Math.min.apply(Math,ai),y:Math.min.apply(Math,af)},max:{x:Math.max.apply(Math,ai),y:Math.max.apply(Math,af)}};}),N=W(function(ak,af){var Z=v(ak),ag=af&&v(af),ah={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},e={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},ab=function(al,am){var i,an;if(!al){return["C",am.x,am.y,am.x,am.y,am.x,am.y];}!(al[0] in {T:1,Q:1})&&(am.qx=am.qy=null);switch(al[0]){case"M":am.X=al[1];am.Y=al[2];break;case"A":al=["C"].concat(q.apply(0,[am.x,am.y].concat(al.slice(1))));break;case"S":i=am.x+(am.x-(am.bx||am.x));an=am.y+(am.y-(am.by||am.y));al=["C",i,an].concat(al.slice(1));break;case"T":am.qx=am.x+(am.x-(am.qx||am.x));am.qy=am.y+(am.y-(am.qy||am.y));al=["C"].concat(w(am.x,am.y,am.qx,am.qy,al[1],al[2]));break;case"Q":am.qx=al[1];am.qy=al[2];al=["C"].concat(w(am.x,am.y,al[1],al[2],al[3],al[4]));break;case"L":al=["C"].concat(d(am.x,am.y,al[1],al[2]));break;case"H":al=["C"].concat(d(am.x,am.y,al[1],am.y));break;case"V":al=["C"].concat(d(am.x,am.y,am.x,al[1]));break;case"Z":al=["C"].concat(d(am.x,am.y,am.X,am.Y));break;}return al;},R=function(al,am){if(al[am].length>7){al[am].shift();var an=al[am];while(an.length){al.splice(am++,0,["C"].concat(an.splice(0,6)));}al.splice(am,1);ai=Math.max(Z.length,ag&&ag.length||0);}},Y=function(ap,ao,am,al,an){if(ap&&ao&&ap[an][0]=="M"&&ao[an][0]!="M"){ao.splice(an,0,["M",al.x,al.y]);am.bx=0;am.by=0;am.x=ap[an][1];am.y=ap[an][2];ai=Math.max(Z.length,ag&&ag.length||0);}};for(var ad=0,ai=Math.max(Z.length,ag&&ag.length||0);ad3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},a=function(e,R){var i=this;for(var Y in R){if(R.hasOwnProperty(Y)&&!(Y in e)){switch(typeof R[Y]){case"function":(function(Z){e[Y]=e===i?Z:function(){return Z.apply(i,arguments);};})(R[Y]);break;case"object":e[Y]=e[Y]||{};a.call(this,e[Y],R[Y]);break;default:e[Y]=R[Y];break;}}}};if(f.svg){b.svgns="http://www.w3.org/2000/svg";b.xlink="http://www.w3.org/1999/xlink";var M=function(e){return +e+(Math.floor(e)==e)*0.5;};var y=function(aa){for(var R=0,Y=aa.length;R0.25){aa=Math.sqrt(0.25-Math.pow(ac-0.5,2))+0.5;}}return"";});ai=ai.split(/\s*\-\s*/);if(af=="linear"){var ab=ai.shift();ab=-parseFloat(ab);if(isNaN(ab)){return null;}var Z=[0,0,Math.cos(ab*Math.PI/180),Math.sin(ab*Math.PI/180)],ah=1/(Math.max(Math.abs(Z[2]),Math.abs(Z[3]))||1);Z[2]*=ah;Z[3]*=ah;if(Z[2]<0){Z[0]=-Z[2];Z[2]=0;}if(Z[3]<0){Z[1]=-Z[3];Z[3]=0;}}var ae=n(ai);if(!ae){return null;}var R=A(af+"Gradient");R.id="r"+(f.idGenerator++).toString(36);af=="radial"?A(R,{fx:ac,fy:aa}):A(R,{x1:Z[0],y1:Z[1],x2:Z[2],y2:Z[3]});e.defs.appendChild(R);for(var ad=0,aj=ae.length;adac.height)&&(ac.height=ab.y+ab.height-ac.y);}}Y&&this.hide();return ac;};m.prototype.attr=function(){if(arguments.length==1&&f.is(arguments[0],"string")){if(arguments[0]=="translation"){return this.translate();}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}return this.attrs[arguments[0]];}if(arguments.length==1&&f.is(arguments[0],"array")){var e={};for(var i in arguments[0]){if(arguments[0].hasOwnProperty(i)){e[arguments[0][i]]=this.attrs[arguments[0][i]];}}return e;}if(arguments.length==2){var R={};R[arguments[0]]=arguments[1];E(this,R);}else{if(arguments.length==1&&f.is(arguments[0],"object")){E(this,arguments[0]);}}return this;};m.prototype.toFront=function(){this.node.parentNode.appendChild(this.node);return this;};m.prototype.toBack=function(){if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);}return this;};m.prototype.insertAfter=function(e){if(e.node.nextSibling){e.node.parentNode.insertBefore(this.node,e.node.nextSibling);}else{e.node.parentNode.appendChild(this.node);}return this;};m.prototype.insertBefore=function(e){var i=e.node;i.parentNode.insertBefore(this.node,i);return this;};var C=function(i,e,aa,Z){e=M(e);aa=M(aa);var Y=A("circle");i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={cx:e,cy:aa,r:Z,fill:"none",stroke:"#000"};R.type="circle";A(Y,R.attrs);return R;};var H=function(R,e,ac,i,aa,ab){e=M(e);ac=M(ac);var Z=A("rect");R.canvas&&R.canvas.appendChild(Z);var Y=new m(Z,R);Y.attrs={x:e,y:ac,width:i,height:aa,r:ab||0,rx:ab||0,ry:ab||0,fill:"none",stroke:"#000"};Y.type="rect";A(Z,Y.attrs);return Y;};var h=function(i,e,ab,aa,Z){e=M(e);ab=M(ab);var Y=A("ellipse");i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={cx:e,cy:ab,rx:aa,ry:Z,fill:"none",stroke:"#000"};R.type="ellipse";A(Y,R.attrs);return R;};var o=function(R,ab,e,ac,i,aa){var Z=A("image");A(Z,{x:e,y:ac,width:i,height:aa,preserveAspectRatio:"none"});Z.setAttributeNS(R.xlink,"href",ab);R.canvas&&R.canvas.appendChild(Z);var Y=new m(Z,R);Y.attrs={x:e,y:ac,width:i,height:aa,src:ab};Y.type="image";return Y;};var G=function(i,e,aa,Z){var Y=A("text");A(Y,{x:e,y:aa,"text-anchor":"middle"});i.canvas&&i.canvas.appendChild(Y);var R=new m(Y,i);R.attrs={x:e,y:aa,"text-anchor":"middle",text:Z,font:p.font,stroke:"none",fill:"#000"};R.type="text";E(R,R.attrs);return R;};var D=function(i,e){this.width=i||this.width;this.height=e||this.height;this.canvas.setAttribute("width",this.width);this.canvas.setAttribute("height",this.height);return this;};var l=function(){var Z=F.apply(null,arguments),R=Z&&Z.container,ab=Z.x,aa=Z.y,Y=Z.width,ac=Z.height;if(!R){throw new Error("SVG container not found.");}b.canvas=A("svg");var e=b.canvas,ad=e.style;e.setAttribute("width",Y||512);b.width=Y||512;e.setAttribute("height",ac||342);b.height=ac||342;if(R==1){g.body.appendChild(e);ad.position="absolute";ad.left=ab+"px";ad.top=aa+"px";}else{if(R.firstChild){R.insertBefore(e,R.firstChild);}else{R.appendChild(e);}}R={canvas:e,clear:function(){while(this.canvas.firstChild){this.canvas.removeChild(this.canvas.firstChild);}this.desc=A("desc");this.defs=A("defs");this.desc.appendChild(g.createTextNode("Created with Rapha\u00ebl"));this.canvas.appendChild(this.desc);this.canvas.appendChild(this.defs);}};for(var i in b){if(b.hasOwnProperty(i)){if(i!="create"){R[i]=b[i];}}}a.call(R,R,f.fn);R.clear();R.raphael=f;return R;};b.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);};}if(f.vml){var x=function(ab){var Z=N(ab);for(var R=0,Y=Z.length;R1&&(i=1);ah.opacity=i;}ai.fill&&(ah.on=true);if(ah.on==null||ai.fill=="none"){ah.on=false;}if(ah.on&&ai.fill){var R=ai.fill.match(/^url\(([^\)]+)\)$/i);if(R){ah.src=R[1];ah.type="tile";}else{ah.color=f.getRGB(ai.fill).hex;ah.src="";ah.type="solid";if(f.getRGB(ai.fill).error&&(an.type in {circle:1,ellipse:1}||(ai.fill+"").charAt(0)!="r")&&L(an,ai.fill)){aj.fill="none";aj.gradient=ai.fill;}}}ak&&ag.appendChild(ah);var Z=(ag.getElementsByTagName("stroke")&&ag.getElementsByTagName("stroke")[0]),al=false;!Z&&(al=Z=U("stroke"));if((ai.stroke&&ai.stroke!="none")||ai["stroke-width"]||ai["stroke-opacity"]!=null||ai["stroke-dasharray"]||ai["stroke-miterlimit"]||ai["stroke-linejoin"]||ai["stroke-linecap"]){Z.on=true;}(ai.stroke=="none"||Z.on==null||ai.stroke==0||ai["stroke-width"]==0)&&(Z.on=false);Z.on&&ai.stroke&&(Z.color=f.getRGB(ai.stroke).hex);var i=((+aj["stroke-opacity"]+1||2)-1)*((+aj.opacity+1||2)-1);i<0&&(i=0);i>1&&(i=1);Z.opacity=i;ai["stroke-linejoin"]&&(Z.joinstyle=ai["stroke-linejoin"]||"miter");Z.miterlimit=ai["stroke-miterlimit"]||8;ai["stroke-linecap"]&&(Z.endcap={butt:"flat",square:"square",round:"round"}[ai["stroke-linecap"]]||"miter");ai["stroke-width"]&&(Z.weight=(parseFloat(ai["stroke-width"])||1)*12/16);if(ai["stroke-dasharray"]){var af={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};Z.dashstyle=af[ai["stroke-dasharray"]]||"";}al&&ag.appendChild(Z);}if(an.type=="text"){var ab=an.paper.span.style;aj.font&&(ab.font=aj.font);aj["font-family"]&&(ab.fontFamily=aj["font-family"]);aj["font-size"]&&(ab.fontSize=aj["font-size"]);aj["font-weight"]&&(ab.fontWeight=aj["font-weight"]);aj["font-style"]&&(ab.fontStyle=aj["font-style"]);an.node.string&&(an.paper.span.innerHTML=an.node.string.replace(/"));an.W=aj.w=an.paper.span.offsetWidth;an.H=aj.h=an.paper.span.offsetHeight;an.X=aj.x;an.Y=aj.y+Math.round(an.H/2);switch(aj["text-anchor"]){case"start":an.node.style["v-text-align"]="left";an.bbx=Math.round(an.W/2);break;case"end":an.node.style["v-text-align"]="right";an.bbx=-Math.round(an.W/2);break;default:an.node.style["v-text-align"]="center";break;}}};var L=function(e,ac){e.attrs=e.attrs||{};var ad=e.attrs,af=e.node.getElementsByTagName("fill"),aa="linear",ab=".5 .5";e.attrs.gradient=ac;ac=(ac+"").replace(/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(ah,ai,i){aa="radial";if(ai&&i){ai=parseFloat(ai);i=parseFloat(i);if(Math.pow(ai-0.5,2)+Math.pow(i-0.5,2)>0.25){i=Math.sqrt(0.25-Math.pow(ai-0.5,2))+0.5;}ab=ai+" "+i;}return"";});ac=ac.split(/\s*\-\s*/);if(aa=="linear"){var R=ac.shift();R=-parseFloat(R);if(isNaN(R)){return null;}}var Z=n(ac);if(!Z){return null;}e=e.shape||e.node;af=af[0]||U("fill");if(Z.length){af.on=true;af.method="none";af.type=(aa=="radial")?"gradientradial":"gradient";af.color=Z[0].color;af.color2=Z[Z.length-1].color;var ag=[];for(var Y=0,ae=Z.length;Y');};}catch(T){var U=function(e){return g.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var l=function(){var Y=F.apply(null,arguments),i=Y.container,ae=Y.height,af,R=Y.width,ad=Y.x,ac=Y.y;if(!i){throw new Error("VML container not found.");}var aa={},ab=aa.canvas=g.createElement("div"),Z=ab.style;R=parseFloat(R)||512;ae=parseFloat(ae)||342;aa.width=R;aa.height=ae;aa.coordsize=R+" "+ae;aa.coordorigin="0 0";aa.span=g.createElement("span");aa.span.style.cssText="position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;";ab.appendChild(aa.span);Z.cssText=f.format("width:{0}px;height:{1}px;position:absolute;clip:rect(0 {0}px {1}px 0)",R,ae);if(i==1){g.body.appendChild(ab);Z.left=ad+"px";Z.top=ac+"px";i={style:{width:R,height:ae}};}else{i.style.width=R;i.style.height=ae;if(i.firstChild){i.insertBefore(ab,i.firstChild);}else{i.appendChild(ab);}}for(var e in b){if(b.hasOwnProperty(e)){aa[e]=b[e];}}a.call(aa,aa,f.fn);aa.clear=function(){while(ab.firstChild){ab.removeChild(ab.firstChild);}};aa.raphael=f;return aa;};b.remove=function(){this.canvas.parentNode.removeChild(this.canvas);};}if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]){b.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){e.remove();});};}else{b.safari=function(){};}var j=(function(){if(g.addEventListener){return function(Z,R,i,e){var Y=function(aa){return i.call(e,aa);};Z.addEventListener(R,Y,false);return function(){Z.removeEventListener(R,Y,false);return true;};};}else{if(g.attachEvent){return function(aa,Y,R,i){var Z=function(ab){return R.call(i,ab||K.event);};aa.attachEvent("on"+Y,Z);var e=function(){aa.detachEvent("on"+Y,Z);return true;};if(Y=="mouseover"){aa.attachEvent("onmouseenter",Z);return function(){aa.detachEvent("onmouseenter",Z);return e();};}else{if(Y=="mouseout"){aa.attachEvent("onmouseleave",Z);return function(){aa.detachEvent("onmouseleave",Z);return e();};}}return e;};}}})();for(var P=u.length;P--;){(function(e){m.prototype[e]=function(i){if(f.is(i,"function")){this.events=this.events||{};this.events[e]=this.events[e]||{};this.events[e][i]=this.events[e][i]||[];this.events[e][i].push(j(this.shape||this.node,e,i,this));}return this;};m.prototype["un"+e]=function(i){this.events&&this.events[e]&&this.events[e][i]&&this.events[e][i].length&&this.events[e][i].shift()()&&!this.events[e][i].length&&delete this.events[e][i];};})(u[P]);}b.circle=function(e,R,i){return C(this,e||0,R||0,i||0);};b.rect=function(e,Z,i,R,Y){return H(this,e||0,Z||0,i||0,R||0,Y||0);};b.ellipse=function(e,Y,R,i){return h(this,e||0,Y||0,R||0,i||0);};b.path=function(e){e&&!f.is(e,"string")&&!f.is(e[0],"array")&&(e+="");return V(f.format.apply(f,arguments),this);};b.image=function(Y,e,Z,i,R){return o(this,Y||"about:blank",e||0,Z||0,i||0,R||0);};b.text=function(e,R,i){return G(this,e||0,R||0,i||"");};b.set=function(e){arguments.length>1&&(e=Array.prototype.splice.call(arguments,0,arguments.length));return new k(e);};b.setSize=D;m.prototype.stop=function(){clearTimeout(this.animation_in_progress);return this;};m.prototype.scale=function(aj,ai,Y,R){if(aj==null&&ai==null){return{x:this._.sx,y:this._.sy,toString:function(){return this.x+" "+this.y;}};}ai=ai||aj;!+ai&&(ai=aj);var an,al,am,ak,aA=this.attrs;if(aj!=0){var ag=this.getBBox(),ad=ag.x+ag.width/2,aa=ag.y+ag.height/2,az=aj/this._.sx,ay=ai/this._.sy;Y=(+Y||Y==0)?Y:ad;R=(+R||R==0)?R:aa;var af=Math.round(aj/Math.abs(aj)),ac=Math.round(ai/Math.abs(ai)),aq=this.node.style,aC=Y+(ad-Y)*af*az,aB=R+(aa-R)*ac*ay;switch(this.type){case"rect":case"image":var ae=aA.width*af*az,ap=aA.height*ac*ay,ah=aA.r*Math.min(az,ay),ab=aC-ae/2,Z=aB-ap/2;this.attr({width:ae,height:ap,x:ab,y:Z,r:ah});break;case"circle":case"ellipse":this.attr({rx:aA.rx*az,ry:aA.ry*ay,r:aA.r*Math.min(az,ay),cx:aC,cy:aB});break;case"path":var at=c(aA.path),au=true;for(var aw=0,ao=at.length;aw":function(e){return Math.pow(e-1,3)+1;},"<>":function(e){e=e*2;if(e<1){return Math.pow(e,3)/2;}e-=2;return(Math.pow(e,3)+2)/2;},backIn:function(i){var e=1.70158;return i*i*((e+1)*i-e);},backOut:function(i){i=i-1;var e=1.70158;return i*i*((e+1)*i+e)+1;},elastic:function(R){if(R==0||R==1){return R;}var i=0.3,e=i/4;return Math.pow(2,-10*R)*Math.sin((R-e)*(2*Math.PI)/i)+1;},bounce:function(Y){var i=7.5625,R=2.75,e;if(Y<(1/R)){e=i*Y*Y;}else{if(Y<(2/R)){Y-=(1.5/R);e=i*Y*Y+0.75;}else{if(Y<(2.5/R)){Y-=(2.25/R);e=i*Y*Y+0.9375;}else{Y-=(2.625/R);e=i*Y*Y+0.984375;}}}return e;}};m.prototype.animate=function(ar,ai,ah,Z){clearTimeout(this.animation_in_progress);if(f.is(ah,"function")||!ah){Z=ah||null;}var al={},R={},af={},ae={x:0,y:0};for(var aj in ar){if(ar.hasOwnProperty(aj)){if(aj in t){al[aj]=this.attr(aj);(al[aj]==null)&&(al[aj]=p[aj]);R[aj]=ar[aj];switch(t[aj]){case"number":af[aj]=(R[aj]-al[aj])/ai;break;case"colour":al[aj]=f.getRGB(al[aj]);var ak=f.getRGB(R[aj]);af[aj]={r:(ak.r-al[aj].r)/ai,g:(ak.g-al[aj].g)/ai,b:(ak.b-al[aj].b)/ai};break;case"path":var aa=N(al[aj],R[aj]);al[aj]=aa[0];R[aj]=aa[1];af[aj]=[];for(var an=0,ad=al[aj].length;an255?255:+i;},ab=this;(function ao(){var au=new Date-Y,aC={},at;if(au")); - res.W = a.w = paper.span.offsetWidth; - res.H = a.h = paper.span.offsetHeight; + res.node.string && (res.paper.span.innerHTML = res.node.string.replace(/")); + res.W = a.w = res.paper.span.offsetWidth; + res.H = a.h = res.paper.span.offsetHeight; res.X = a.x; res.Y = a.y + Math.round(res.H / 2); @@ -1924,17 +1932,12 @@ window.Raphael = (function () { element.Group.parentNode.insertBefore(this.Group, element.Group); return this; }; - + var theCircle = function (vml, x, y, r) { var g = createNode("group"), - gl = g.style, o = createNode("oval"), ol = o.style; - gl.position = "absolute"; - gl.left = 0; - gl.top = 0; - gl.width = vml.width + "px"; - gl.height = vml.height + "px"; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; g.coordsize = vml.coordsize; g.coordorigin = vml.coordorigin; g.appendChild(o); @@ -1950,15 +1953,10 @@ window.Raphael = (function () { }; var theRect = function (vml, x, y, w, h, r) { var g = createNode("group"), - gl = g.style, o = createNode(r ? "roundrect" : "rect"), arcsize = (+r || 0) / (Math.min(w, h)); o.arcsize = arcsize; - gl.position = "absolute"; - gl.left = 0; - gl.top = 0; - gl.width = vml.width + "px"; - gl.height = vml.height + "px"; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; g.coordsize = vml.coordsize; g.coordorigin = vml.coordorigin; g.appendChild(o); @@ -1972,14 +1970,9 @@ window.Raphael = (function () { }; var theEllipse = function (vml, x, y, rx, ry) { var g = createNode("group"), - gl = g.style, o = createNode("oval"), ol = o.style; - gl.position = "absolute"; - gl.left = 0; - gl.top = 0; - gl.width = vml.width + "px"; - gl.height = vml.height + "px"; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; g.coordsize = vml.coordsize; g.coordorigin = vml.coordorigin; g.appendChild(o); @@ -1996,14 +1989,9 @@ window.Raphael = (function () { }; var theImage = function (vml, src, x, y, w, h) { var g = createNode("group"), - gl = g.style, o = createNode("image"), ol = o.style; - gl.position = "absolute"; - gl.left = 0; - gl.top = 0; - gl.width = vml.width + "px"; - gl.height = vml.height + "px"; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; g.coordsize = vml.coordsize; g.coordorigin = vml.coordorigin; o.src = src; @@ -2021,28 +2009,18 @@ window.Raphael = (function () { }; var theText = function (vml, x, y, text) { var g = createNode("group"), - gs = g.style, el = createNode("shape"), ol = el.style, path = createNode("path"), ps = path.style, o = createNode("textpath"); - gs.position = "absolute"; - gs.left = 0; - gs.top = 0; - gs.width = vml.width + "px"; - gs.height = vml.height + "px"; + g.style.cssText = "position:absolute;left:0;top:0;width:" + vml.width + "px;height:" + vml.height + "px"; g.coordsize = vml.coordsize; g.coordorigin = vml.coordorigin; - path.v = ["m", Math.round(x), ", ", Math.round(y), "l", Math.round(x) + 1, ", ", Math.round(y)].join(""); + path.v = R.format("m{0},{1}l{2},{1}", Math.round(x), Math.round(y), Math.round(x) + 1); path.textpathok = true; ol.width = vml.width; ol.height = vml.height; - gs.position = "absolute"; - gs.left = 0; - gs.top = 0; - gs.width = vml.width; - gs.height = vml.height; o.string = text; o.on = true; el.appendChild(o); @@ -2104,19 +2082,9 @@ window.Raphael = (function () { res.coordsize = width + " " + height; res.coordorigin = "0 0"; res.span = doc.createElement("span"); - s = res.span.style; + res.span.style.cssText = "position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;"; c.appendChild(res.span); - s.position = "absolute"; - s.left = "-99999px"; - s.top = "-99999px"; - s.padding = 0; - s.margin = 0; - s.lineHeight = 1; - s.display = "inline"; - cs.width = width + "px"; - cs.height = height + "px"; - cs.position = "absolute"; - cs.clip = "rect(0 " + width + "px " + height + "px 0)"; + cs.cssText = R.format("width:{0}px;height:{1}px;position:absolute;clip:rect(0 {0}px {1}px 0)", width, height); if (container == 1) { doc.body.appendChild(c); cs.left = x + "px"; @@ -2154,7 +2122,7 @@ window.Raphael = (function () { } // rest - // Safari or Chrome (WebKit) + // Safari or Chrome (WebKit) rendering bug workaround method if ({"Apple Computer, Inc.": 1, "Google Inc.": 1}[navigator.vendor]) { paper.safari = function () { var rect = this.rect(-99, -99, this.width + 99, this.height + 99); @@ -2228,23 +2196,23 @@ window.Raphael = (function () { })(events[i]); } paper.circle = function (x, y, r) { - return theCircle(this, x, y, r); + return theCircle(this, x || 0, y || 0, r || 0); }; paper.rect = function (x, y, w, h, r) { - return theRect(this, x, y, w, h, r); + return theRect(this, x || 0, y || 0, w || 0, h || 0, r || 0); }; paper.ellipse = function (x, y, rx, ry) { - return theEllipse(this, x, y, rx, ry); + return theEllipse(this, x || 0, y || 0, rx || 0, ry || 0); }; paper.path = function (pathString) { pathString && !R.is(pathString, "string") && !R.is(pathString[0], "array") && (pathString += ""); return thePath(R.format.apply(R, arguments), this); }; paper.image = function (src, x, y, w, h) { - return theImage(this, src, x, y, w, h); + return theImage(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); }; paper.text = function (x, y, text) { - return theText(this, x, y, text); + return theText(this, x || 0, y || 0, text || ""); }; paper.set = function (itemsArray) { arguments.length > 1 && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length)); @@ -2657,7 +2625,28 @@ window.Raphael = (function () { } return this; }; - + Set.prototype.animate = function (params, ms, easing, callback) { + if (R.is(easing, "function") || !easing) { + callback = easing || null; + } + var len = this.items.length, + i = len, + set = this; + if (callback) { + var collector = function () { + !--len && callback.call(set); + }; + while (i--) { + this.items[i].animate(params, ms, easing || collector, collector); + } + } else { + while (i--) { + this.items[i].animate(params, ms, easing); + } + } + return this; + }; + Set.prototype.getBBox = function () { var x = [], y = [], @@ -2769,7 +2758,7 @@ window.Raphael = (function () { token && R.is(token, "string") && args.length - 1 && (token = token.replace(/\{(\d+)\}/g, function (str, i) { return args[++i] == null ? "" : args[i]; })); - return token; + return token || ""; }; R.ninja = function () { var r = window.Raphael, u; -- 2.39.2