From: Dmitry Baranovskiy Date: Thu, 10 Dec 2009 05:00:38 +0000 (+1100) Subject: 1.2.6 X-Git-Tag: semver~9 X-Git-Url: http://git.roojs.org/?p=raphael;a=commitdiff_plain;h=f032ff7a900cc06856c75904ceaba029c00b7936 1.2.6 • Improved events handling • Fix rounded rect in IE • Added xmlns & version (bug 96) --- diff --git a/raphael-min.js b/raphael-min.js index 16a511d..2104ad4 100644 --- a/raphael-min.js +++ b/raphael-min.js @@ -1,7 +1,7 @@ /* - * Raphael 1.2.5 - JavaScript Vector Library + * Raphael 1.2.6 - 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 a=/[, ]+/,D=document,aj=window,k={was:"Raphael" in aj,is:aj.Raphael},af=function(){if(af.is(arguments[0],"array")){var e=arguments[0],E=s[aJ](af,e.splice(0,3+af.is(e[0],ad))),aN=E.set();for(var S=0,aO=e[l];S");i.close();aO=i.body;}catch(aQ){aO=createPopup().document.body;}var S=aO.createTextRange();try{aO.style.color=aN;var aP=S.queryCommandValue("ForeColor");aP=((aP&255)<<16)|(aP&65280)|((aP&16711680)>>>16);return"#"+("000000"+aP[ao](16)).slice(-6);}catch(aQ){return"none";}});}else{var R=D.createElement("i");R.className="Rapha\xebl Colour Picker";R.style.cssText="display:none";D.body[aA](R);ar=aa(function(i){R.style.color=i;return D.defaultView.getComputedStyle(R,ai).getPropertyValue("color");});}return ar(E);};af.hsb2rgb=aa(function(aR,aP,aV){if(af.is(aR,"object")&&"h" in aR&&"s" in aR&&"b" in aR){aV=aR.b;aP=aR.s;aR=aR.h;}var S,aN,aW;if(aV==0){return{r:0,g:0,b:0,hex:"#000"};}if(aR>1||aP>1||aV>1){aR/=255;aP/=255;aV/=255;}var aO=~~(aR*6),aS=(aR*6)-aO,R=aV*(1-aP),E=aV*(1-(aP*aS)),aX=aV*(1-(aP*(1-aS)));S=[aV,E,R,R,aX,aV,aV][aO];aN=[aX,aV,aV,E,R,R,aX][aO];aW=[R,R,aX,aV,aV,E,R][aO];S*=255;aN*=255;aW*=255;var aT={r:S,g:aN,b:aW},e=(~~S)[ao](16),aQ=(~~aN)[ao](16),aU=(~~aW)[ao](16);e=e[aD](aH,"0");aQ=aQ[aD](aH,"0");aU=aU[aD](aH,"0");aT.hex="#"+e+aQ+aU;return aT;},af);af.rgb2hsb=aa(function(e,i,aP){if(af.is(e,"object")&&"r" in e&&"g" in e&&"b" in e){aP=e.b;i=e.g;e=e.r;}if(af.is(e,"string")){var aR=af.getRGB(e);e=aR.r;i=aR.g;aP=aR.b;}if(e>1||i>1||aP>1){e/=255;i/=255;aP/=255;}var aO=f(e,i,aP),E=ax(e,i,aP),S,R,aN=aO;if(E==aO){return{h:0,s:0,b:aO};}else{var aQ=(aO-E);R=aQ/aO;if(e==aO){S=(i-aP)/aQ;}else{if(i==aO){S=2+((aP-e)/aQ);}else{S=4+((e-i)/aQ);}}S/=6;S<0&&S++;S>1&&S--;}return{h:S,s:R,b:aN};},af);var at=/,?([achlmqrstvxz]),?/gi;af._path2string=function(){return this.join(",")[aD](at,"$1");};function aa(R,i,e){function E(){var S=Array[aL].slice.call(arguments,0),aO=S[an]("\u25ba"),aN=E.cache=E.cache||{},aP=E.count=E.count||[];if(aN[J](aO)){return e?e(aN[aO]):aN[aO];}aP[l]>=1000&&delete aN[aP.shift()];aP[d](aO);aN[aO]=R[aJ](i,S);return e?e(aN[aO]):aN[aO];}return E;}af.getRGB=aa(function(e){if(!e||!!((e+ai).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1};}e=e+ai;if(e=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}!({hs:1,rg:1})[J](e.substring(0,2))&&(e=ar(e));var aN,E,R,aQ,aO=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(aO){if(aO[2]){aQ=z(aO[2].substring(5),16);R=z(aO[2].substring(3,5),16);E=z(aO[2].substring(1,3),16);}if(aO[3]){aQ=z(aO[3].substring(3)+aO[3].substring(3),16);R=z(aO[3].substring(2,3)+aO[3].substring(2,3),16);E=z(aO[3].substring(1,2)+aO[3].substring(1,2),16);}if(aO[4]){aO=aO[4][u](/\s*,\s*/);E=N(aO[0]);R=N(aO[1]);aQ=N(aO[2]);}if(aO[5]){aO=aO[5][u](/\s*,\s*/);E=N(aO[0])*2.55;R=N(aO[1])*2.55;aQ=N(aO[2])*2.55;}if(aO[6]){aO=aO[6][u](/\s*,\s*/);E=N(aO[0]);R=N(aO[1]);aQ=N(aO[2]);return af.hsb2rgb(E,R,aQ);}if(aO[7]){aO=aO[7][u](/\s*,\s*/);E=N(aO[0])*2.55;R=N(aO[1])*2.55;aQ=N(aO[2])*2.55;return af.hsb2rgb(E,R,aQ);}aO={r:E,g:R,b:aQ};var i=(~~E)[ao](16),S=(~~R)[ao](16),aP=(~~aQ)[ao](16);i=i[aD](aH,"0");S=S[aD](aH,"0");aP=aP[aD](aH,"0");aO.hex="#"+i+S+aP;return aO;}return{r:-1,g:-1,b:-1,hex:"none",error:1};},af);af.getColor=function(i){var E=this.getColor.start=this.getColor.start||{h:0,s:1,b:i||0.75},e=this.hsb2rgb(E.h,E.s,E.b);E.h+=0.075;if(E.h>1){E.h=0;E.s-=0.2;E.s<=0&&(this.getColor.start={h:0,s:1,b:E.b});}return e.hex;};af.getColor.reset=function(){delete this.start;};af.parsePathString=aa(function(e){if(!e){return null;}var E={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=[];if(af.is(e,"array")&&af.is(e[0],"array")){i=ak(e);}if(!i[l]){(e+ai)[aD](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(S,R,aP){var aO=[],aN=aM.call(R);aP[aD](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(aR,aQ){aQ&&aO[d](+aQ);});while(aO[l]>=E[aN]){i[d]([R][aG](aO.splice(0,E[aN])));if(!E[aN]){break;}}});}i[ao]=af._path2string;return i;});var L=aa(function(aT){if(!aT){return{x:0,y:0,width:0,height:0};}aT=A(aT);var aQ=0,aP=0,S=[],E=[],R;for(var aN=0,aS=aT[l];aNaQ){aR=aR-S*2;}if(!aN&&aQ>aR){aQ=aQ-S*2;}}else{aR=aZ[0];aQ=aZ[1];a1=aZ[2];a0=aZ[3];}var aV=aQ-aR;if(Math.abs(aV)>a3){var a2=aQ,a5=aW,aT=bq;aQ=aR+a3*(aN&&aQ>aR?1:-1);aW=a1+a6*Math.cos(aQ);bq=a0+a4*Math.sin(aQ);ba=C(aW,bq,a6,a4,aY,0,aN,a5,aT,[aQ,a2,a1,a0]);}aV=aQ-aR;var aP=Math.cos(aR),bp=Math.sin(aR),aO=Math.cos(aQ),bo=Math.sin(aQ),bd=Math.tan(aV/4),bg=4/3*a6*bd,be=4/3*a4*bd,bm=[aX,br],bl=[aX+bg*bp,br-be*aP],bk=[aW+bg*bo,bq-be*aO],bi=[aW,bq];bl[0]=2*bm[0]-bl[0];bl[1]=2*bm[1]-bl[1];if(aZ){return[bl,bk,bi][aG](ba);}else{ba=[bl,bk,bi][aG](ba)[an](",")[u](",");var a8=[];for(var bj=0,a9=ba[l];bj0&&aO<1){i=F(E,e,S,R,aX,aW,aT,aQ,aO);aU[d](i.x);aR[d](i.y);}if(aN>0&&aN<1){i=F(E,e,S,R,aX,aW,aT,aQ,aN);aU[d](i.x);aR[d](i.y);}aV=(aW-2*R+e)-(aQ-2*aW+R);aS=2*(R-e)-2*(aW-R);aP=e-R;aO=(-aS+Math.sqrt(aS*aS-4*aV*aP))/2/aV;aN=(-aS-Math.sqrt(aS*aS-4*aV*aP))/2/aV;!isFinite(aO)&&(aO=0.5);!isFinite(aN)&&(aN=0.5);if(aO>0&&aO<1){i=F(E,e,S,R,aX,aW,aT,aQ,aO);aU[d](i.x);aR[d](i.y);}if(aN>0&&aN<1){i=F(E,e,S,R,aX,aW,aT,aQ,aN);aU[d](i.x);aR[d](i.y);}return{min:{x:ax[aJ](0,aU),y:ax[aJ](0,aR)},max:{x:f[aJ](0,aU),y:f[aJ](0,aR)}};}),A=aa(function(aX,aS){var S=p(aX),aT=aS&&p(aS),aU={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},aO=function(aY,aZ){var i,a0;if(!aY){return["C",aZ.x,aZ.y,aZ.x,aZ.y,aZ.x,aZ.y];}!(aY[0] in {T:1,Q:1})&&(aZ.qx=aZ.qy=null);switch(aY[0]){case"M":aZ.X=aY[1];aZ.Y=aY[2];break;case"A":aY=["C"][aG](C[aJ](0,[aZ.x,aZ.y][aG](aY.slice(1))));break;case"S":i=aZ.x+(aZ.x-(aZ.bx||aZ.x));a0=aZ.y+(aZ.y-(aZ.by||aZ.y));aY=["C",i,a0][aG](aY.slice(1));break;case"T":aZ.qx=aZ.x+(aZ.x-(aZ.qx||aZ.x));aZ.qy=aZ.y+(aZ.y-(aZ.qy||aZ.y));aY=["C"][aG](az(aZ.x,aZ.y,aZ.qx,aZ.qy,aY[1],aY[2]));break;case"Q":aZ.qx=aY[1];aZ.qy=aY[2];aY=["C"][aG](az(aZ.x,aZ.y,aY[1],aY[2],aY[3],aY[4]));break;case"L":aY=["C"][aG](aK(aZ.x,aZ.y,aY[1],aY[2]));break;case"H":aY=["C"][aG](aK(aZ.x,aZ.y,aY[1],aZ.y));break;case"V":aY=["C"][aG](aK(aZ.x,aZ.y,aZ.x,aY[1]));break;case"Z":aY=["C"][aG](aK(aZ.x,aZ.y,aZ.X,aZ.Y));break;}return aY;},E=function(aY,aZ){if(aY[aZ][l]>7){aY[aZ].shift();var a0=aY[aZ];while(a0[l]){aY.splice(aZ++,0,["C"][aG](a0.splice(0,6)));}aY.splice(aZ,1);aV=f(S[l],aT&&aT[l]||0);}},R=function(a4,a3,aZ,aY,a0){if(a4&&a3&&a4[a0][0]=="M"&&a3[a0][0]!="M"){a3.splice(a0,0,["M",aY.x,aY.y]);aZ.bx=0;aZ.by=0;aZ.x=a4[a0][1];aZ.y=a4[a0][2];aV=f(S[l],aT&&aT[l]||0);}};for(var aQ=0,aV=f(S[l],aT&&aT[l]||0);aQ3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},av=function(e,E){var i=this;for(var R in E){if(E[J](R)&&!(R in e)){switch(typeof E[R]){case"function":(function(S){e[R]=e===i?S:function(){return S[aJ](i,arguments);};})(E[R]);break;case"object":e[R]=e[R]||{};av.call(this,e[R],E[R]);break;default:e[R]=E[R];break;}}}},ac=function(e,i){e==i.top&&(i.top=e.prev);e==i.bottom&&(i.bottom=e.next);e.next&&(e.next.prev=e.prev);e.prev&&(e.prev.next=e.next);},P=function(e,i){if(i.top===e){return;}ac(e,i);e.next=null;e.prev=i.top;i.top.next=e;i.top=e;},j=function(e,i){if(i.bottom===e){return;}ac(e,i);e.next=i.bottom;e.prev=null;i.bottom.prev=e;i.bottom=e;},v=function(i,e,E){ac(i,E);e==E.top&&(E.top=i);e.next&&(e.next.prev=i);i.next=e.next;i.prev=e;e.next=i;},ah=function(i,e,E){ac(i,E);e==E.bottom&&(E.bottom=i);e.prev&&(e.prev.next=i);i.prev=e.prev;e.prev=i;i.next=e;};if(af.svg){aE.svgns="http://www.w3.org/2000/svg";aE.xlink="http://www.w3.org/1999/xlink";var H=function(e){return +e+(~~e===e)*0.5;},M=function(aN){for(var E=0,R=aN[l];E0.25){aN=Math.sqrt(0.25-aB(aP-0.5,2))+0.5;}}return ai;});aV=aV[u](/\s*\-\s*/);if(aS=="linear"){var aO=aV.shift();aO=-N(aO);if(isNaN(aO)){return null;}var S=[0,0,Math.cos(aO*Math.PI/180),Math.sin(aO*Math.PI/180)],aU=1/(f(Math.abs(S[2]),Math.abs(S[3]))||1);S[2]*=aU;S[3]*=aU;if(S[2]<0){S[0]=-S[2];S[2]=0;}if(S[3]<0){S[1]=-S[3];S[3]=0;}}var aR=n(aV);if(!aR){return null;}var E=ay(aS+"Gradient");E.id="r"+(af._id++)[ao](36);aS=="radial"?ay(E,{fx:aP,fy:aN}):ay(E,{x1:S[0],y1:S[1],x2:S[2],y2:S[3]});e.defs[aA](E);for(var aQ=0,aW=aR[l];aQaP.height)&&(aP.height=aO.y+aO.height-aP.y);(aO.x+aO.width-aP.x>aP.width)&&(aP.width=aO.x+aO.width-aP.x);}}R&&this.hide();return aP;};am[aL].attr=function(){if(this.removed){return this;}if(arguments[l]==0){var S={};for(var R in this.attrs){if(this.attrs[J](R)){S[R]=this.attrs[R];}}return S;}if(arguments[l]==1&&af.is(arguments[0],"string")){if(arguments[0]=="translation"){return q.call(this);}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}if(arguments[0]=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}return this.attrs[arguments[0]];}if(arguments[l]==1&&af.is(arguments[0],"array")){var e={};for(var E in arguments[0]){if(arguments[0][J](E)){e[arguments[0][E]]=this.attrs[arguments[0][E]];}}return e;}if(arguments[l]==2){var aN={};aN[arguments[0]]=arguments[1];T(this,aN);}else{if(arguments[l]==1&&af.is(arguments[0],"object")){T(this,arguments[0]);}}return this;};am[aL].toFront=function(){if(this.removed){return this;}this.node.parentNode[aA](this.node);var e=this.paper;e.top!=this&&P(this,e);return this;};am[aL].toBack=function(){if(this.removed){return this;}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);j(this,this.paper);var e=this.paper;}return this;};am[aL].insertAfter=function(i){if(this.removed){return this;}var e=this.paper,E=i.node;if(E.nextSibling){E.parentNode.insertBefore(this.node,E.nextSibling);}else{E.parentNode[aA](this.node);}v(this,i,this.paper);return this;};am[aL].insertBefore=function(e){if(this.removed){return this;}var i=e.node;i.parentNode.insertBefore(this.node,i);ah(this,e,this.paper);return this;};var I=function(i,e,aN,S){e=H(e);aN=H(aN);var R=ay("circle");i.canvas&&i.canvas[aA](R);var E=new am(R,i);E.attrs={cx:e,cy:aN,r:S,fill:"none",stroke:"#000"};E.type="circle";ay(R,E.attrs);return E;};var au=function(E,e,aP,i,aN,aO){e=H(e);aP=H(aP);var S=ay("rect");E.canvas&&E.canvas[aA](S);var R=new am(S,E);R.attrs={x:e,y:aP,width:i,height:aN,r:aO||0,rx:aO||0,ry:aO||0,fill:"none",stroke:"#000"};R.type="rect";ay(S,R.attrs);return R;};var Z=function(i,e,aO,aN,S){e=H(e);aO=H(aO);var R=ay("ellipse");i.canvas&&i.canvas[aA](R);var E=new am(R,i);E.attrs={cx:e,cy:aO,rx:aN,ry:S,fill:"none",stroke:"#000"};E.type="ellipse";ay(R,E.attrs);return E;};var m=function(E,aO,e,aP,i,aN){var S=ay("image");ay(S,{x:e,y:aP,width:i,height:aN,preserveAspectRatio:"none"});S.setAttributeNS(E.xlink,"href",aO);E.canvas&&E.canvas[aA](S);var R=new am(S,E);R.attrs={x:e,y:aP,width:i,height:aN,src:aO};R.type="image";return R;};var O=function(i,e,aN,S){var R=ay("text");ay(R,{x:e,y:aN,"text-anchor":"middle"});i.canvas&&i.canvas[aA](R);var E=new am(R,i);E.attrs={x:e,y:aN,"text-anchor":"middle",text:S,font:h.font,stroke:"none",fill:"#000"};E.type="text";T(E,E.attrs);return E;};var aI=function(i,e){this.width=i||this.width;this.height=e||this.height;this.canvas[r]("width",this.width);this.canvas[r]("height",this.height);return this;};var s=function(){var R=ag[aJ](null,arguments),E=R&&R.container,i=R.x,aP=R.y,S=R.width,e=R.height;if(!E){throw new Error("SVG container not found.");}aE.canvas=ay("svg");var aO=aE.canvas;aE.width=S||512;aE.height=e||342;aO[r]("width",aE.width);aO[r]("height",aE.height);if(E==1){aO.style.cssText="position:absolute;left:"+i+"px;top:"+aP+"px";D.body[aA](aO);}else{if(E.firstChild){E.insertBefore(aO,E.firstChild);}else{E[aA](aO);}}E={canvas:aO};for(var aN in aE){if(aE[J](aN)){E[aN]=aE[aN];}}E.bottom=E.top=null;av.call(E,E,af.fn);E.clear();E.raphael=af;return E;};aE.clear=function(){var e=this.canvas;while(e.firstChild){e.removeChild(e.firstChild);}this.bottom=this.top=null;(this.desc=ay("desc"))[aA](D.createTextNode("Created with Rapha\xebl"));e[aA](this.desc);e[aA](this.defs=ay("defs"));};aE.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var e in this){delete this[e];}};}if(af.vml){var aw=function(aW){var aT=/[ahqtv]/ig,aO=p;(aW+ai).match(aT)&&(aO=A);aT=/[clmz]/g;if(aO==p&&!(aW+ai).match(aT)){var E={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},S=/([clmz]),?([^clmz]*)/gi,aN=/-?[^,\s-]+/g;var aS=(aW+ai)[aD](S,function(aX,aZ,i){var aY=[];i[aD](aN,function(a0){aY[d](H(a0));});return E[aZ]+aY;});return aS;}var aU=aO(aW),R,aS=[],e;for(var aQ=0,aV=aU[l];aQ1&&(i=1);aV.opacity=i;}aW.fill&&(aV.on=true);if(aV.on==null||aW.fill=="none"){aV.on=false;}if(aV.on&&aW.fill){var E=aW.fill.match(c);if(E){aV.src=E[1];aV.type="tile";}else{aV.color=af.getRGB(aW.fill).hex;aV.src=ai;aV.type="solid";if(af.getRGB(aW.fill).error&&(a1.type in {circle:1,ellipse:1}||(aW.fill+ai).charAt()!="r")&&b(a1,aW.fill)){aX.fill="none";aX.gradient=aW.fill;}}}aY&&aU[aA](aV);var S=(aU.getElementsByTagName("stroke")&&aU.getElementsByTagName("stroke")[0]),aZ=false;!S&&(aZ=S=Y("stroke"));if((aW.stroke&&aW.stroke!="none")||aW["stroke-width"]||aW["stroke-opacity"]!=null||aW["stroke-dasharray"]||aW["stroke-miterlimit"]||aW["stroke-linejoin"]||aW["stroke-linecap"]){S.on=true;}(aW.stroke=="none"||S.on==null||aW.stroke==0||aW["stroke-width"]==0)&&(S.on=false);S.on&&aW.stroke&&(S.color=af.getRGB(aW.stroke).hex);var i=((+aX["stroke-opacity"]+1||2)-1)*((+aX.opacity+1||2)-1),aS=(N(aW["stroke-width"])||1)*0.75;i<0&&(i=0);i>1&&(i=1);aW["stroke-width"]==null&&(aS=aX["stroke-width"]);aW["stroke-width"]&&(S.weight=aS);aS&&aS<1&&(i*=aS)&&(S.weight=1);S.opacity=i;aW["stroke-linejoin"]&&(S.joinstyle=aW["stroke-linejoin"]||"miter");S.miterlimit=aW["stroke-miterlimit"]||8;aW["stroke-linecap"]&&(S.endcap=aW["stroke-linecap"]=="butt"?"flat":aW["stroke-linecap"]=="square"?"square":"round");if(aW["stroke-dasharray"]){var aT={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};S.dashstyle=aT[J](aW["stroke-dasharray"])?aT[aW["stroke-dasharray"]]:ai;}aZ&&aU[aA](S);}if(a1.type=="text"){var aO=a1.paper.span.style;aX.font&&(aO.font=aX.font);aX["font-family"]&&(aO.fontFamily=aX["font-family"]);aX["font-size"]&&(aO.fontSize=aX["font-size"]);aX["font-weight"]&&(aO.fontWeight=aX["font-weight"]);aX["font-style"]&&(aO.fontStyle=aX["font-style"]);a1.node.string&&(a1.paper.span.innerHTML=(a1.node.string+ai)[aD](/"));a1.W=aX.w=a1.paper.span.offsetWidth;a1.H=aX.h=a1.paper.span.offsetHeight;a1.X=aX.x;a1.Y=aX.y+H(a1.H/2);switch(aX["text-anchor"]){case"start":a1.node.style["v-text-align"]="left";a1.bbx=H(a1.W/2);break;case"end":a1.node.style["v-text-align"]="right";a1.bbx=-H(a1.W/2);break;default:a1.node.style["v-text-align"]="center";break;}}};var b=function(e,aP){e.attrs=e.attrs||{};var aQ=e.attrs,aS=e.node.getElementsByTagName("fill"),aN="linear",aO=".5 .5";e.attrs.gradient=aP;aP=(aP+ai)[aD](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(aU,aV,i){aN="radial";if(aV&&i){aV=N(aV);i=N(i);if(aB(aV-0.5,2)+aB(i-0.5,2)>0.25){i=Math.sqrt(0.25-aB(aV-0.5,2))+0.5;}aO=aV+ae+i;}return ai;});aP=aP[u](/\s*\-\s*/);if(aN=="linear"){var E=aP.shift();E=-N(E);if(isNaN(E)){return null;}}var S=n(aP);if(!S){return null;}e=e.shape||e.node;aS=aS[0]||Y("fill");if(S[l]){aS.on=true;aS.method="none";aS.type=(aN=="radial")?"gradientradial":"gradient";aS.color=S[0].color;aS.color2=S[S[l]-1].color;var aT=[];for(var R=0,aR=S[l];R');};}catch(X){var Y=function(e){return D.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var s=function(){var R=ag[aJ](null,arguments),i=R.container,aR=R.height,aS,E=R.width,aQ=R.x,aP=R.y;if(!i){throw new Error("VML container not found.");}var aN={},aO=aN.canvas=D.createElement("div"),S=aO.style;E=E||512;aR=aR||342;E==+E&&(E+="px");aR==+aR&&(aR+="px");aN.width=1000;aN.height=1000;aN.coordsize="1000 1000";aN.coordorigin="0 0";aN.span=D.createElement("span");aN.span.style.cssText="position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;";aO[aA](aN.span);S.cssText=af.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden",E,aR);if(i==1){D.body[aA](aO);S.left=aQ+"px";S.top=aP+"px";i={style:{width:E,height:aR}};}else{i.style.width=E;i.style.height=aR;if(i.firstChild){i.insertBefore(aO,i.firstChild);}else{i[aA](aO);}}for(var e in aE){if(aE[J](e)){aN[e]=aE[e];}}av.call(aN,aN,af.fn);aN.top=aN.bottom=null;aN.raphael=af;return aN;};aE.clear=function(){this.canvas.innerHTML=ai;this.bottom=this.top=null;};aE.remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var e in this){delete this[e];}};}if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]&&!(navigator.userAgent.indexOf("Version/4.0")+1)){aE.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){e.remove();});};}else{aE.safari=function(){};}var W=(function(){if(D.addEventListener){return function(S,E,i,e){var R=function(aN){return i.call(e,aN);};S.addEventListener(E,R,false);return function(){S.removeEventListener(E,R,false);return true;};};}else{if(D.attachEvent){return function(aN,R,E,i){var S=function(aO){return E.call(i,aO||aj.event);};aN.attachEvent("on"+R,S);var e=function(){aN.detachEvent("on"+R,S);return true;};if(R=="mouseover"){aN.attachEvent("onmouseenter",S);return function(){aN.detachEvent("onmouseenter",S);return e();};}else{if(R=="mouseout"){aN.attachEvent("onmouseleave",S);return function(){aN.detachEvent("onmouseleave",S);return e();};}}return e;};}}})();for(var U=y[l];U--;){(function(e){am[aL][e]=function(i){if(af.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][d](W(this.shape||this.node,e,i,this));}return this;};am[aL]["un"+e]=function(i){var E=this.events;E&&E[e]&&E[e][i]&&E[e][i][l]&&E[e][i].shift()()&&!E[e][i][l]&&delete E[e][i];return this;};})(y[U]);}am[aL].hover=function(i,e){return this.mouseover(i).mouseout(e);};aE.circle=function(e,E,i){return I(this,e||0,E||0,i||0);};aE.rect=function(e,S,i,E,R){return au(this,e||0,S||0,i||0,E||0,R||0);};aE.ellipse=function(e,R,E,i){return Z(this,e||0,R||0,E||0,i||0);};aE.path=function(e){e&&!af.is(e,"string")&&!af.is(e[0],"array")&&(e+=ai);return o(af.format[aJ](af,arguments),this);};aE.image=function(R,e,S,i,E){return m(this,R||"about:blank",e||0,S||0,i||0,E||0);};aE.text=function(e,E,i){return O(this,e||0,E||0,i||ai);};aE.set=function(e){arguments[l]>1&&(e=Array[aL].splice.call(arguments,0,arguments[l]));return new K(e);};aE.setSize=aI;am[aL].scale=function(aX,aW,R,E){if(aX==null&&aW==null){return{x:this._.sx,y:this._.sy,toString:function(){return this.x+ae+this.y;}};}aW=aW||aX;!+aW&&(aW=aX);var a1,aZ,a0,aY,bd=this.attrs;if(aX!=0){var aU=this.getBBox(),aR=aU.x+aU.width/2,aN=aU.y+aU.height/2,bc=aX/this._.sx,ba=aW/this._.sy;R=(+R||R==0)?R:aR;E=(+E||E==0)?E:aN;var aT=~~(aX/Math.abs(aX)),aQ=~~(aW/Math.abs(aW)),a4=this.node.style,bf=R+(aR-R)*bc,be=E+(aN-E)*ba;switch(this.type){case"rect":case"image":var aS=bd.width*aT*bc,a3=bd.height*aQ*ba,aV=bd.r*ax(bc,ba),aP=bf-aS/2,S=be-a3/2;this.attr({width:aS,height:a3,x:aP,y:S,r:aV});break;case"circle":case"ellipse":this.attr({rx:bd.rx*aT*bc,ry:bd.ry*aQ*ba,r:bd.r*ax(aT*bc,aQ*ba),cx:bf,cy:be});break;case"path":var a6=V(bd.path),a7=true;for(var a9=0,a2=a6[l];a9":function(e){return aB(e-1,3)+1;},"<>":function(e){e=e*2;if(e<1){return aB(e,3)/2;}e-=2;return(aB(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(E){if(E==0||E==1){return E;}var i=0.3,e=i/4;return aB(2,-10*E)*Math.sin((E-e)*(2*Math.PI)/i)+1;},bounce:function(R){var i=7.5625,E=2.75,e;if(R<(1/E)){e=i*R*R;}else{if(R<(2/E)){R-=(1.5/E);e=i*R*R+0.75;}else{if(R<(2.5/E)){R-=(2.25/E);e=i*R*R+0.9375;}else{R-=(2.625/E);e=i*R*R+0.984375;}}}return e;}};var B={length:0},aF=function(){var aQ=+new Date;for(var a1 in B){if(a1!="length"&&B[J](a1)){var a6=B[a1];if(a6.stop){delete B[a1];B[l]--;continue;}var aO=aQ-a6.start,aZ=a6.ms,aY=a6.easing,a2=a6.from,aV=a6.diff,R=a6.to,aU=a6.t,aX=a6.prev||0,aP=a6.el,S=a6.callback,aW={},E;if(aO255?255:(e<0?0:e);},q=function(e,E){if(e==null){return{x:this._.tx,y:this._.ty};}this._.tx+=+e;this._.ty+=+E;switch(this.type){case"circle":case"ellipse":this.attr({cx:+e+this.attrs.cx,cy:+E+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+e+this.attrs.x,y:+E+this.attrs.y});break;case"path":var i=V(this.attrs.path);i[0][1]+=+e;i[0][2]+=+E;this.attr({path:i});break;}return this;};am[aL].animateWith=function(i,E,e,S,R){B[i.id]&&(E.start=B[i.id].start);return this.animate(E,e,S,R);};am[aL].onAnimation=function(e){this._run=e||null;return this;};am[aL].animate=function(R,e,aS,aY){if(af.is(aS,"function")||!aS){aY=aS||null;}var aT={},aU={},aV={};for(var aR in R){if(R[J](aR)){if(Q[J](aR)){aT[aR]=this.attr(aR);(aT[aR]==null)&&(aT[aR]=h[aR]);aU[aR]=R[aR];switch(Q[aR]){case"number":aV[aR]=(aU[aR]-aT[aR])/e;break;case"colour":aT[aR]=af.getRGB(aT[aR]);var aP=af.getRGB(aU[aR]);aV[aR]={r:(aP.r-aT[aR].r)/e,g:(aP.g-aT[aR].g)/e,b:(aP.b-aT[aR].b)/e};break;case"path":var E=A(aT[aR],aU[aR]);aT[aR]=E[0];aU[aR]=E[1];aV[aR]=[];for(var aO=0,aX=aT[aR][l];aO");i.close();aQ=i.body;}catch(aS){aQ=createPopup().document.body;}var S=aQ.createTextRange();try{aQ.style.color=aP;var aR=S.queryCommandValue("ForeColor");aR=((aR&255)<<16)|(aR&65280)|((aR&16711680)>>>16);return"#"+("000000"+aR[ap](16)).slice(-6);}catch(aS){return"none";}});}else{var R=D.createElement("i");R.className="Rapha\xebl Colour Picker";R.style.cssText="display:none";D.body[aC](R);at=ab(function(i){R.style.color=i;return D.defaultView.getComputedStyle(R,aj).getPropertyValue("color");});}return at(E);};ag.hsb2rgb=ab(function(aT,aR,aX){if(ag.is(aT,"object")&&"h" in aT&&"s" in aT&&"b" in aT){aX=aT.b;aR=aT.s;aT=aT.h;}var S,aP,aY;if(aX==0){return{r:0,g:0,b:0,hex:"#000"};}if(aT>1||aR>1||aX>1){aT/=255;aR/=255;aX/=255;}var aQ=~~(aT*6),aU=(aT*6)-aQ,R=aX*(1-aR),E=aX*(1-(aR*aU)),aZ=aX*(1-(aR*(1-aU)));S=[aX,E,R,R,aZ,aX,aX][aQ];aP=[aZ,aX,aX,E,R,R,aZ][aQ];aY=[R,R,aZ,aX,aX,E,R][aQ];S*=255;aP*=255;aY*=255;var aV={r:S,g:aP,b:aY},e=(~~S)[ap](16),aS=(~~aP)[ap](16),aW=(~~aY)[ap](16);e=e[aF](aJ,"0");aS=aS[aF](aJ,"0");aW=aW[aF](aJ,"0");aV.hex="#"+e+aS+aW;return aV;},ag);ag.rgb2hsb=ab(function(e,i,aR){if(ag.is(e,"object")&&"r" in e&&"g" in e&&"b" in e){aR=e.b;i=e.g;e=e.r;}if(ag.is(e,"string")){var aT=ag.getRGB(e);e=aT.r;i=aT.g;aR=aT.b;}if(e>1||i>1||aR>1){e/=255;i/=255;aR/=255;}var aQ=f(e,i,aR),E=az(e,i,aR),S,R,aP=aQ;if(E==aQ){return{h:0,s:0,b:aQ};}else{var aS=(aQ-E);R=aS/aQ;if(e==aQ){S=(i-aR)/aS;}else{if(i==aQ){S=2+((aR-e)/aS);}else{S=4+((e-i)/aS);}}S/=6;S<0&&S++;S>1&&S--;}return{h:S,s:R,b:aP};},ag);var av=/,?([achlmqrstvxz]),?/gi;ag._path2string=function(){return this.join(",")[aF](av,"$1");};function ab(R,i,e){function E(){var S=Array[aN].slice.call(arguments,0),aQ=S[ao]("\u25ba"),aP=E.cache=E.cache||{},aR=E.count=E.count||[];if(aP[J](aQ)){return e?e(aP[aQ]):aP[aQ];}aR[l]>=1000&&delete aP[aR.shift()];aR[d](aQ);aP[aQ]=R[aL](i,S);return e?e(aP[aQ]):aP[aQ];}return E;}ag.getRGB=ab(function(e){if(!e||!!((e+aj).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1};}e=e+aj;if(e=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}!({hs:1,rg:1})[J](e.substring(0,2))&&(e=at(e));var aP,E,R,aS,aQ=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(aQ){if(aQ[2]){aS=z(aQ[2].substring(5),16);R=z(aQ[2].substring(3,5),16);E=z(aQ[2].substring(1,3),16);}if(aQ[3]){aS=z(aQ[3].substring(3)+aQ[3].substring(3),16);R=z(aQ[3].substring(2,3)+aQ[3].substring(2,3),16);E=z(aQ[3].substring(1,2)+aQ[3].substring(1,2),16);}if(aQ[4]){aQ=aQ[4][u](/\s*,\s*/);E=N(aQ[0]);R=N(aQ[1]);aS=N(aQ[2]);}if(aQ[5]){aQ=aQ[5][u](/\s*,\s*/);E=N(aQ[0])*2.55;R=N(aQ[1])*2.55;aS=N(aQ[2])*2.55;}if(aQ[6]){aQ=aQ[6][u](/\s*,\s*/);E=N(aQ[0]);R=N(aQ[1]);aS=N(aQ[2]);return ag.hsb2rgb(E,R,aS);}if(aQ[7]){aQ=aQ[7][u](/\s*,\s*/);E=N(aQ[0])*2.55;R=N(aQ[1])*2.55;aS=N(aQ[2])*2.55;return ag.hsb2rgb(E,R,aS);}aQ={r:E,g:R,b:aS};var i=(~~E)[ap](16),S=(~~R)[ap](16),aR=(~~aS)[ap](16);i=i[aF](aJ,"0");S=S[aF](aJ,"0");aR=aR[aF](aJ,"0");aQ.hex="#"+i+S+aR;return aQ;}return{r:-1,g:-1,b:-1,hex:"none",error:1};},ag);ag.getColor=function(i){var E=this.getColor.start=this.getColor.start||{h:0,s:1,b:i||0.75},e=this.hsb2rgb(E.h,E.s,E.b);E.h+=0.075;if(E.h>1){E.h=0;E.s-=0.2;E.s<=0&&(this.getColor.start={h:0,s:1,b:E.b});}return e.hex;};ag.getColor.reset=function(){delete this.start;};ag.parsePathString=ab(function(e){if(!e){return null;}var E={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=[];if(ag.is(e,"array")&&ag.is(e[0],"array")){i=al(e);}if(!i[l]){(e+aj)[aF](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(S,R,aR){var aQ=[],aP=aO.call(R);aR[aF](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(aT,aS){aS&&aQ[d](+aS);});while(aQ[l]>=E[aP]){i[d]([R][aI](aQ.splice(0,E[aP])));if(!E[aP]){break;}}});}i[ap]=ag._path2string;return i;});var L=ab(function(aV){if(!aV){return{x:0,y:0,width:0,height:0};}aV=A(aV);var aS=0,aR=0,S=[],E=[],R;for(var aP=0,aU=aV[l];aPaS){aT=aT-S*2;}if(!aP&&aS>aT){aS=aS-S*2;}}else{aT=a1[0];aS=a1[1];a3=a1[2];a2=a1[3];}var aX=aS-aT;if(U.abs(aX)>a5){var a4=aS,a7=aY,aV=bs;aS=aT+a5*(aP&&aS>aT?1:-1);aY=a3+a8*U.cos(aS);bs=a2+a6*U.sin(aS);bc=C(aY,bs,a8,a6,a0,0,aP,a7,aV,[aS,a4,a3,a2]);}aX=aS-aT;var aR=U.cos(aT),br=U.sin(aT),aQ=U.cos(aS),bq=U.sin(aS),bf=U.tan(aX/4),bi=4/3*a8*bf,bg=4/3*a6*bf,bo=[aZ,bt],bn=[aZ+bi*br,bt-bg*aR],bm=[aY+bi*bq,bs-bg*aQ],bk=[aY,bs];bn[0]=2*bo[0]-bn[0];bn[1]=2*bo[1]-bn[1];if(a1){return[bn,bm,bk][aI](bc);}else{bc=[bn,bm,bk][aI](bc)[ao](",")[u](",");var ba=[];for(var bl=0,bb=bc[l];bl1000000000000&&(aQ=0.5);U.abs(aP)>1000000000000&&(aP=0.5);if(aQ>0&&aQ<1){i=F(E,e,S,R,aZ,aY,aV,aS,aQ);aW[d](i.x);aT[d](i.y);}if(aP>0&&aP<1){i=F(E,e,S,R,aZ,aY,aV,aS,aP);aW[d](i.x);aT[d](i.y);}aX=(aY-2*R+e)-(aS-2*aY+R);aU=2*(R-e)-2*(aY-R);aR=e-R;aQ=(-aU+U.sqrt(aU*aU-4*aX*aR))/2/aX;aP=(-aU-U.sqrt(aU*aU-4*aX*aR))/2/aX;U.abs(aQ)>1000000000000&&(aQ=0.5);U.abs(aP)>1000000000000&&(aP=0.5);if(aQ>0&&aQ<1){i=F(E,e,S,R,aZ,aY,aV,aS,aQ);aW[d](i.x);aT[d](i.y);}if(aP>0&&aP<1){i=F(E,e,S,R,aZ,aY,aV,aS,aP);aW[d](i.x);aT[d](i.y);}return{min:{x:az[aL](0,aW),y:az[aL](0,aT)},max:{x:f[aL](0,aW),y:f[aL](0,aT)}};}),A=ab(function(aZ,aU){var S=p(aZ),aV=aU&&p(aU),aW={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},aQ=function(a0,a1){var i,a2;if(!a0){return["C",a1.x,a1.y,a1.x,a1.y,a1.x,a1.y];}!(a0[0] in {T:1,Q:1})&&(a1.qx=a1.qy=null);switch(a0[0]){case"M":a1.X=a0[1];a1.Y=a0[2];break;case"A":a0=["C"][aI](C[aL](0,[a1.x,a1.y][aI](a0.slice(1))));break;case"S":i=a1.x+(a1.x-(a1.bx||a1.x));a2=a1.y+(a1.y-(a1.by||a1.y));a0=["C",i,a2][aI](a0.slice(1));break;case"T":a1.qx=a1.x+(a1.x-(a1.qx||a1.x));a1.qy=a1.y+(a1.y-(a1.qy||a1.y));a0=["C"][aI](aB(a1.x,a1.y,a1.qx,a1.qy,a0[1],a0[2]));break;case"Q":a1.qx=a0[1];a1.qy=a0[2];a0=["C"][aI](aB(a1.x,a1.y,a0[1],a0[2],a0[3],a0[4]));break;case"L":a0=["C"][aI](aM(a1.x,a1.y,a0[1],a0[2]));break;case"H":a0=["C"][aI](aM(a1.x,a1.y,a0[1],a1.y));break;case"V":a0=["C"][aI](aM(a1.x,a1.y,a1.x,a0[1]));break;case"Z":a0=["C"][aI](aM(a1.x,a1.y,a1.X,a1.Y));break;}return a0;},E=function(a0,a1){if(a0[a1][l]>7){a0[a1].shift();var a2=a0[a1];while(a2[l]){a0.splice(a1++,0,["C"][aI](a2.splice(0,6)));}a0.splice(a1,1);aX=f(S[l],aV&&aV[l]||0);}},R=function(a6,a5,a3,a0,a4){if(a6&&a5&&a6[a4][0]=="M"&&a5[a4][0]!="M"){a5.splice(a4,0,["M",a0.x,a0.y]);a3.bx=0;a3.by=0;a3.x=a6[a4][1];a3.y=a6[a4][2];aX=f(S[l],aV&&aV[l]||0);}};for(var aS=0,aX=f(S[l],aV&&aV[l]||0);aS3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},ax=function(e,E){var i=this;for(var R in E){if(E[J](R)&&!(R in e)){switch(typeof E[R]){case"function":(function(S){e[R]=e===i?S:function(){return S[aL](i,arguments);};})(E[R]);break;case"object":e[R]=e[R]||{};ax.call(this,e[R],E[R]);break;default:e[R]=E[R];break;}}}},ad=function(e,i){e==i.top&&(i.top=e.prev);e==i.bottom&&(i.bottom=e.next);e.next&&(e.next.prev=e.prev);e.prev&&(e.prev.next=e.next);},P=function(e,i){if(i.top===e){return;}ad(e,i);e.next=null;e.prev=i.top;i.top.next=e;i.top=e;},j=function(e,i){if(i.bottom===e){return;}ad(e,i);e.next=i.bottom;e.prev=null;i.bottom.prev=e;i.bottom=e;},v=function(i,e,E){ad(i,E);e==E.top&&(E.top=i);e.next&&(e.next.prev=i);i.next=e.next;i.prev=e;e.next=i;},ai=function(i,e,E){ad(i,E);e==E.bottom&&(E.bottom=i);e.prev&&(e.prev.next=i);i.prev=e.prev;e.prev=i;i.next=e;};if(ag.svg){aG.svgns="http://www.w3.org/2000/svg";aG.xlink="http://www.w3.org/1999/xlink";var H=function(e){return +e+(~~e===e)*0.5;},M=function(aP){for(var E=0,R=aP[l];E0.25){aP=U.sqrt(0.25-aD(aR-0.5,2))+0.5;}}return aj;});aX=aX[u](/\s*\-\s*/);if(aU=="linear"){var aQ=aX.shift();aQ=-N(aQ);if(isNaN(aQ)){return null;}var S=[0,0,U.cos(aQ*U.PI/180),U.sin(aQ*U.PI/180)],aW=1/(f(U.abs(S[2]),U.abs(S[3]))||1);S[2]*=aW;S[3]*=aW;if(S[2]<0){S[0]=-S[2];S[2]=0;}if(S[3]<0){S[1]=-S[3];S[3]=0;}}var aT=n(aX);if(!aT){return null;}var E=aA(aU+"Gradient");E.id="r"+(ag._id++)[ap](36);aU=="radial"?aA(E,{fx:aR,fy:aP}):aA(E,{x1:S[0],y1:S[1],x2:S[2],y2:S[3]});e.defs[aC](E);for(var aS=0,aY=aT[l];aSaR.height)&&(aR.height=aQ.y+aQ.height-aR.y);(aQ.x+aQ.width-aR.x>aR.width)&&(aR.width=aQ.x+aQ.width-aR.x);}}R&&this.hide();return aR;};an[aN].attr=function(){if(this.removed){return this;}if(arguments[l]==0){var S={};for(var R in this.attrs){if(this.attrs[J](R)){S[R]=this.attrs[R];}}return S;}if(arguments[l]==1&&ag.is(arguments[0],"string")){if(arguments[0]=="translation"){return q.call(this);}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}if(arguments[0]=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}return this.attrs[arguments[0]];}if(arguments[l]==1&&ag.is(arguments[0],"array")){var e={};for(var E in arguments[0]){if(arguments[0][J](E)){e[arguments[0][E]]=this.attrs[arguments[0][E]];}}return e;}if(arguments[l]==2){var aP={};aP[arguments[0]]=arguments[1];T(this,aP);}else{if(arguments[l]==1&&ag.is(arguments[0],"object")){T(this,arguments[0]);}}return this;};an[aN].toFront=function(){if(this.removed){return this;}this.node.parentNode[aC](this.node);var e=this.paper;e.top!=this&&P(this,e);return this;};an[aN].toBack=function(){if(this.removed){return this;}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);j(this,this.paper);var e=this.paper;}return this;};an[aN].insertAfter=function(i){if(this.removed){return this;}var e=this.paper,E=i.node;if(E.nextSibling){E.parentNode.insertBefore(this.node,E.nextSibling);}else{E.parentNode[aC](this.node);}v(this,i,this.paper);return this;};an[aN].insertBefore=function(e){if(this.removed){return this;}var i=e.node;i.parentNode.insertBefore(this.node,i);ai(this,e,this.paper);return this;};var I=function(i,e,aP,S){e=H(e);aP=H(aP);var R=aA("circle");i.canvas&&i.canvas[aC](R);var E=new an(R,i);E.attrs={cx:e,cy:aP,r:S,fill:"none",stroke:"#000"};E.type="circle";aA(R,E.attrs);return E;};var aw=function(E,e,aR,i,aP,aQ){e=H(e);aR=H(aR);var S=aA("rect");E.canvas&&E.canvas[aC](S);var R=new an(S,E);R.attrs={x:e,y:aR,width:i,height:aP,r:aQ||0,rx:aQ||0,ry:aQ||0,fill:"none",stroke:"#000"};R.type="rect";aA(S,R.attrs);return R;};var aa=function(i,e,aQ,aP,S){e=H(e);aQ=H(aQ);var R=aA("ellipse");i.canvas&&i.canvas[aC](R);var E=new an(R,i);E.attrs={cx:e,cy:aQ,rx:aP,ry:S,fill:"none",stroke:"#000"};E.type="ellipse";aA(R,E.attrs);return E;};var m=function(E,aQ,e,aR,i,aP){var S=aA("image");aA(S,{x:e,y:aR,width:i,height:aP,preserveAspectRatio:"none"});S.setAttributeNS(E.xlink,"href",aQ);E.canvas&&E.canvas[aC](S);var R=new an(S,E);R.attrs={x:e,y:aR,width:i,height:aP,src:aQ};R.type="image";return R;};var O=function(i,e,aP,S){var R=aA("text");aA(R,{x:e,y:aP,"text-anchor":"middle"});i.canvas&&i.canvas[aC](R);var E=new an(R,i);E.attrs={x:e,y:aP,"text-anchor":"middle",text:S,font:h.font,stroke:"none",fill:"#000"};E.type="text";T(E,E.attrs);return E;};var aK=function(i,e){this.width=i||this.width;this.height=e||this.height;this.canvas[r]("width",this.width);this.canvas[r]("height",this.height);return this;};var s=function(){var R=ah[aL](null,arguments),E=R&&R.container,i=R.x,aR=R.y,S=R.width,e=R.height;if(!E){throw new Error("SVG container not found.");}aG.canvas=aA("svg");var aQ=aG.canvas;aG.width=S||512;aG.height=e||342;aA(aQ,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:aG.width,height:aG.height});if(E==1){aQ.style.cssText="position:absolute;left:"+i+"px;top:"+aR+"px";D.body[aC](aQ);}else{if(E.firstChild){E.insertBefore(aQ,E.firstChild);}else{E[aC](aQ);}}E={canvas:aQ};for(var aP in aG){if(aG[J](aP)){E[aP]=aG[aP];}}E.bottom=E.top=null;ax.call(E,E,ag.fn);E.clear();E.raphael=ag;return E;};aG.clear=function(){var e=this.canvas;while(e.firstChild){e.removeChild(e.firstChild);}this.bottom=this.top=null;(this.desc=aA("desc"))[aC](D.createTextNode("Created with Rapha\xebl"));e[aC](this.desc);e[aC](this.defs=aA("defs"));};aG.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var e in this){delete this[e];}};}if(ag.vml){var ay=function(aY){var aV=/[ahqtv]/ig,aQ=p;(aY+aj).match(aV)&&(aQ=A);aV=/[clmz]/g;if(aQ==p&&!(aY+aj).match(aV)){var E={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},S=/([clmz]),?([^clmz]*)/gi,aP=/-?[^,\s-]+/g;var aU=(aY+aj)[aF](S,function(aZ,a1,i){var a0=[];i[aF](aP,function(a2){a0[d](H(a2));});return E[a1]+a0;});return aU;}var aW=aQ(aY),R,aU=[],e;for(var aS=0,aX=aW[l];aS1&&(i=1);aX.opacity=i;}aY.fill&&(aX.on=true);if(aX.on==null||aY.fill=="none"){aX.on=false;}if(aX.on&&aY.fill){var E=aY.fill.match(c);if(E){aX.src=E[1];aX.type="tile";}else{aX.color=ag.getRGB(aY.fill).hex;aX.src=aj;aX.type="solid";if(ag.getRGB(aY.fill).error&&(a3.type in {circle:1,ellipse:1}||(aY.fill+aj).charAt()!="r")&&b(a3,aY.fill)){aZ.fill="none";aZ.gradient=aY.fill;}}}a0&&aW[aC](aX);var S=(aW.getElementsByTagName("stroke")&&aW.getElementsByTagName("stroke")[0]),a1=false;!S&&(a1=S=Z("stroke"));if((aY.stroke&&aY.stroke!="none")||aY["stroke-width"]||aY["stroke-opacity"]!=null||aY["stroke-dasharray"]||aY["stroke-miterlimit"]||aY["stroke-linejoin"]||aY["stroke-linecap"]){S.on=true;}(aY.stroke=="none"||S.on==null||aY.stroke==0||aY["stroke-width"]==0)&&(S.on=false);S.on&&aY.stroke&&(S.color=ag.getRGB(aY.stroke).hex);var i=((+aZ["stroke-opacity"]+1||2)-1)*((+aZ.opacity+1||2)-1),aU=(N(aY["stroke-width"])||1)*0.75;i<0&&(i=0);i>1&&(i=1);aY["stroke-width"]==null&&(aU=aZ["stroke-width"]);aY["stroke-width"]&&(S.weight=aU);aU&&aU<1&&(i*=aU)&&(S.weight=1);S.opacity=i;aY["stroke-linejoin"]&&(S.joinstyle=aY["stroke-linejoin"]||"miter");S.miterlimit=aY["stroke-miterlimit"]||8;aY["stroke-linecap"]&&(S.endcap=aY["stroke-linecap"]=="butt"?"flat":aY["stroke-linecap"]=="square"?"square":"round");if(aY["stroke-dasharray"]){var aV={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};S.dashstyle=aV[J](aY["stroke-dasharray"])?aV[aY["stroke-dasharray"]]:aj;}a1&&aW[aC](S);}if(a3.type=="text"){var aQ=a3.paper.span.style;aZ.font&&(aQ.font=aZ.font);aZ["font-family"]&&(aQ.fontFamily=aZ["font-family"]);aZ["font-size"]&&(aQ.fontSize=aZ["font-size"]);aZ["font-weight"]&&(aQ.fontWeight=aZ["font-weight"]);aZ["font-style"]&&(aQ.fontStyle=aZ["font-style"]);a3.node.string&&(a3.paper.span.innerHTML=(a3.node.string+aj)[aF](/"));a3.W=aZ.w=a3.paper.span.offsetWidth;a3.H=aZ.h=a3.paper.span.offsetHeight;a3.X=aZ.x;a3.Y=aZ.y+H(a3.H/2);switch(aZ["text-anchor"]){case"start":a3.node.style["v-text-align"]="left";a3.bbx=H(a3.W/2);break;case"end":a3.node.style["v-text-align"]="right";a3.bbx=-H(a3.W/2);break;default:a3.node.style["v-text-align"]="center";break;}}};var b=function(e,aR){e.attrs=e.attrs||{};var aS=e.attrs,aU=e.node.getElementsByTagName("fill"),aP="linear",aQ=".5 .5";e.attrs.gradient=aR;aR=(aR+aj)[aF](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(aW,aX,i){aP="radial";if(aX&&i){aX=N(aX);i=N(i);if(aD(aX-0.5,2)+aD(i-0.5,2)>0.25){i=U.sqrt(0.25-aD(aX-0.5,2))+0.5;}aQ=aX+af+i;}return aj;});aR=aR[u](/\s*\-\s*/);if(aP=="linear"){var E=aR.shift();E=-N(E);if(isNaN(E)){return null;}}var S=n(aR);if(!S){return null;}e=e.shape||e.node;aU=aU[0]||Z("fill");if(S[l]){aU.on=true;aU.method="none";aU.type=(aP=="radial")?"gradientradial":"gradient";aU.color=S[0].color;aU.color2=S[S[l]-1].color;var aV=[];for(var R=0,aT=S[l];R');};}catch(Y){var Z=function(e){return D.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var s=function(){var R=ah[aL](null,arguments),i=R.container,aT=R.height,aU,E=R.width,aS=R.x,aR=R.y;if(!i){throw new Error("VML container not found.");}var aP={},aQ=aP.canvas=D.createElement("div"),S=aQ.style;E=E||512;aT=aT||342;E==+E&&(E+="px");aT==+aT&&(aT+="px");aP.width=1000;aP.height=1000;aP.coordsize="1000 1000";aP.coordorigin="0 0";aP.span=D.createElement("span");aP.span.style.cssText="position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;";aQ[aC](aP.span);S.cssText=ag.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden",E,aT);if(i==1){D.body[aC](aQ);S.left=aS+"px";S.top=aR+"px";i={style:{width:E,height:aT}};}else{i.style.width=E;i.style.height=aT;if(i.firstChild){i.insertBefore(aQ,i.firstChild);}else{i[aC](aQ);}}for(var e in aG){if(aG[J](e)){aP[e]=aG[e];}}ax.call(aP,aP,ag.fn);aP.top=aP.bottom=null;aP.raphael=ag;return aP;};aG.clear=function(){this.canvas.innerHTML=aj;this.bottom=this.top=null;};aG.remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var e in this){delete this[e];}};}if((/^Apple|^Google/).test(navigator.vendor)&&!(navigator.userAgent.indexOf("Version/4.0")+1)){aG.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){e.remove();});};}else{aG.safari=function(){};}var X=(function(){if(D.addEventListener){return function(S,E,i,e){var R=function(aP){return i.call(e,aP);};S.addEventListener(E,R,false);return function(){S.removeEventListener(E,R,false);return true;};};}else{if(D.attachEvent){return function(aP,R,E,i){var S=function(aQ){return E.call(i,aQ||ak.event);};aP.attachEvent("on"+R,S);var e=function(){aP.detachEvent("on"+R,S);return true;};return e;};}}})();for(var V=y[l];V--;){(function(e){an[aN][e]=function(i){if(ag.is(i,"function")){this.events=this.events||[];this.events.push({name:e,f:i,unbind:X(this.shape||this.node,e,i,this)});}return this;};an[aN]["un"+e]=function(R){var E=this.events,i=E[l];while(i--){if(E[i].name==e&&E[i].f==R){E[i].unbind();E.splice(i,1);!E.length&&delete this.events;return this;}}return this;};})(y[V]);}an[aN].hover=function(i,e){return this.mouseover(i).mouseout(e);};an[aN].unhover=function(i,e){return this.unmouseover(i).unmouseout(e);};aG.circle=function(e,E,i){return I(this,e||0,E||0,i||0);};aG.rect=function(e,S,i,E,R){return aw(this,e||0,S||0,i||0,E||0,R||0);};aG.ellipse=function(e,R,E,i){return aa(this,e||0,R||0,E||0,i||0);};aG.path=function(e){e&&!ag.is(e,"string")&&!ag.is(e[0],"array")&&(e+=aj);return o(ag.format[aL](ag,arguments),this);};aG.image=function(R,e,S,i,E){return m(this,R||"about:blank",e||0,S||0,i||0,E||0);};aG.text=function(e,E,i){return O(this,e||0,E||0,i||aj);};aG.set=function(e){arguments[l]>1&&(e=Array[aN].splice.call(arguments,0,arguments[l]));return new K(e);};aG.setSize=aK;function au(){return this.x+af+this.y;}an[aN].scale=function(aZ,aY,R,E){if(aZ==null&&aY==null){return{x:this._.sx,y:this._.sy,toString:au};}aY=aY||aZ;!+aY&&(aY=aZ);var a3,a1,a2,a0,bf=this.attrs;if(aZ!=0){var aW=this.getBBox(),aT=aW.x+aW.width/2,aP=aW.y+aW.height/2,be=aZ/this._.sx,bd=aY/this._.sy;R=(+R||R==0)?R:aT;E=(+E||E==0)?E:aP;var aV=~~(aZ/U.abs(aZ)),aS=~~(aY/U.abs(aY)),a6=this.node.style,bh=R+(aT-R)*be,bg=E+(aP-E)*bd;switch(this.type){case"rect":case"image":var aU=bf.width*aV*be,a5=bf.height*aS*bd,aX=bf.r*az(be,bd),aR=bh-aU/2,S=bg-a5/2;this.attr({height:a5,r:aX,width:aU,x:aR,y:S});break;case"circle":case"ellipse":this.attr({rx:bf.rx*aV*be,ry:bf.ry*aS*bd,r:bf.r*az(aV*be,aS*bd),cx:bh,cy:bg});break;case"path":var a8=W(bf.path),a9=true;for(var bc=0,a4=a8[l];bc":function(e){return aD(e-1,3)+1;},"<>":function(e){e=e*2;if(e<1){return aD(e,3)/2;}e-=2;return(aD(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(E){if(E==0||E==1){return E;}var i=0.3,e=i/4;return aD(2,-10*E)*U.sin((E-e)*(2*U.PI)/i)+1;},bounce:function(R){var i=7.5625,E=2.75,e;if(R<(1/E)){e=i*R*R;}else{if(R<(2/E)){R-=(1.5/E);e=i*R*R+0.75;}else{if(R<(2.5/E)){R-=(2.25/E);e=i*R*R+0.9375;}else{R-=(2.625/E);e=i*R*R+0.984375;}}}return e;}};var B={length:0},aH=function(){var aS=+new Date;for(var a3 in B){if(a3!="length"&&B[J](a3)){var a8=B[a3];if(a8.stop){delete B[a3];B[l]--;continue;}var aQ=aS-a8.start,a1=a8.ms,a0=a8.easing,a4=a8.from,aX=a8.diff,R=a8.to,aW=a8.t,aZ=a8.prev||0,aR=a8.el,S=a8.callback,aY={},E;if(aQ255?255:(e<0?0:e);},q=function(e,E){if(e==null){return{x:this._.tx,y:this._.ty};}this._.tx+=+e;this._.ty+=+E;switch(this.type){case"circle":case"ellipse":this.attr({cx:+e+this.attrs.cx,cy:+E+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+e+this.attrs.x,y:+E+this.attrs.y});break;case"path":var i=W(this.attrs.path);i[0][1]+=+e;i[0][2]+=+E;this.attr({path:i});break;}return this;};an[aN].animateWith=function(i,E,e,S,R){B[i.id]&&(E.start=B[i.id].start);return this.animate(E,e,S,R);};an[aN].onAnimation=function(e){this._run=e||null;return this;};an[aN].animate=function(R,e,aU,a0){if(ag.is(aU,"function")||!aU){a0=aU||null;}var aV={},aW={},aX={};for(var aT in R){if(R[J](aT)){if(Q[J](aT)){aV[aT]=this.attr(aT);(aV[aT]==null)&&(aV[aT]=h[aT]);aW[aT]=R[aT];switch(Q[aT]){case"number":aX[aT]=(aW[aT]-aV[aT])/e;break;case"colour":aV[aT]=ag.getRGB(aV[aT]);var aR=ag.getRGB(aW[aT]);aX[aT]={r:(aR.r-aV[aT].r)/e,g:(aR.g-aV[aT].g)/e,b:(aR.b-aV[aT].b)/e};break;case"path":var E=A(aV[aT],aW[aT]);aV[aT]=E[0];aW[aT]=E[1];aX[aT]=[];for(var aQ=0,aZ=aV[aT][l];aQ _120) { + if (math.abs(df) > _120) { var f2old = f2, x2old = x2, y2old = y2; f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * Math.cos(f2); - y2 = cy + ry * Math.sin(f2); + x2 = cx + rx * math.cos(f2); + y2 = cy + ry * math.sin(f2); res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); } df = f2 - f1; - var c1 = Math.cos(f1), - s1 = Math.sin(f1), - c2 = Math.cos(f2), - s2 = Math.sin(f2), - t = Math.tan(df / 4), + var c1 = math.cos(f1), + s1 = math.sin(f1), + c2 = math.cos(f2), + s2 = math.sin(f2), + t = math.tan(df / 4), hx = 4 / 3 * rx * t, hy = 4 / 3 * ry * t, m1 = [x1, y1], @@ -633,13 +634,13 @@ window.Raphael = (function () { var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), b = 2 * (c1x - p1x) - 2 * (c2x - c1x), c = p1x - c1x, - t1 = (-b + Math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - Math.sqrt(b * b - 4 * a * c)) / 2 / a, + t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, + t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, y = [p1y, p2y], x = [p1x, p2x], dot; - !isFinite(t1) && (t1 = .5); - !isFinite(t2) && (t2 = .5); + math.abs(t1) > 1e12 && (t1 = .5); + math.abs(t2) > 1e12 && (t2 = .5); if (t1 > 0 && t1 < 1) { dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); x[push](dot.x); @@ -653,10 +654,10 @@ window.Raphael = (function () { a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); b = 2 * (c1y - p1y) - 2 * (c2y - c1y); c = p1y - c1y; - t1 = (-b + Math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - Math.sqrt(b * b - 4 * a * c)) / 2 / a; - !isFinite(t1) && (t1 = .5); - !isFinite(t2) && (t2 = .5); + t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; + t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; + math.abs(t1) > 1e12 && (t1 = .5); + math.abs(t2) > 1e12 && (t2 = .5); if (t1 > 0 && t1 < 1) { dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); x[push](dot.x); @@ -940,7 +941,7 @@ window.Raphael = (function () { fx = toFloat(_fx); fy = toFloat(_fy); if (pow(fx - .5, 2) + pow(fy - .5, 2) > .25) { - fy = Math.sqrt(.25 - pow(fx - .5, 2)) + .5; + fy = math.sqrt(.25 - pow(fx - .5, 2)) + .5; } } return E; @@ -952,8 +953,8 @@ window.Raphael = (function () { if (isNaN(angle)) { return null; } - var vector = [0, 0, Math.cos(angle * Math.PI / 180), Math.sin(angle * Math.PI / 180)], - max = 1 / (mmax(Math.abs(vector[2]), Math.abs(vector[3])) || 1); + var vector = [0, 0, math.cos(angle * math.PI / 180), math.sin(angle * math.PI / 180)], + max = 1 / (mmax(math.abs(vector[2]), math.abs(vector[3])) || 1); vector[2] *= max; vector[3] *= max; if (vector[2] < 0) { @@ -1550,8 +1551,12 @@ window.Raphael = (function () { var cnvs = paper.canvas; paper.width = width || 512; paper.height = height || 342; - cnvs[setAttribute]("width", paper.width); - cnvs[setAttribute]("height", paper.height); + $(cnvs, { + xmlns: "http://www.w3.org/2000/svg", + version: 1.1, + width: paper.width, + height: paper.height + }); if (container == 1) { cnvs.style.cssText = "position:absolute;left:" + x + "px;top:" + y + "px"; doc.body[appendChild](cnvs); @@ -1842,7 +1847,7 @@ window.Raphael = (function () { fx = toFloat(fx); fy = toFloat(fy); if (pow(fx - .5, 2) + pow(fy - .5, 2) > .25) { - fy = Math.sqrt(.25 - pow(fx - .5, 2)) + .5; + fy = math.sqrt(.25 - pow(fx - .5, 2)) + .5; } fxfy = fx + S + fy; } @@ -2034,15 +2039,26 @@ window.Raphael = (function () { (os.width != w + "px") && (os.width = w + "px"); (os.height != h + "px") && (os.height = h + "px"); var arcsize = (+params.r || 0) / mmin(w, h); - if (this.type == "rect" && this.arcsize != arcsize && (arcsize || this.arcsize)) { + if (this.type == "rect" && this.arcsize.toFixed(4) != arcsize.toFixed(4) && (arcsize || this.arcsize)) { // We should replace element with the new one - var o = createNode(arcsize ? "roundrect" : "rect"); + var o = createNode("roundrect"), + a = {}, + i = 0, + ii = this.events[length]; o.arcsize = arcsize; + o.raphael = this; this.Group[appendChild](o); - this.node.parentNode.removeChild(this.node); - this.node = o; + this.Group.removeChild(this.node); + this[0] = this.node = o; this.arcsize = arcsize; - this.attr(this.attrs); + for (var i in attr) { + a[i] = attr[i]; + } + delete a.scale; + this.attr(a); + if (this.events) for (; i < ii; i++) { + this.events[i].unbind = addEvent(this.node, this.events[i].name, this.events[i].f, this); + } } } }; @@ -2362,7 +2378,7 @@ window.Raphael = (function () { // rest // Safari or Chrome (WebKit) rendering bug workaround method - if ({"Apple Computer, Inc.": 1, "Google Inc.": 1}[navigator.vendor] && !(navigator.userAgent.indexOf("Version/4.0") + 1)) { + if ((/^Apple|^Google/).test(navigator.vendor) && !(navigator.userAgent.indexOf("Version/4.0") + 1)) { paper.safari = function () { var rect = this.rect(-99, -99, this.width + 99, this.height + 99); setTimeout(function () {rect.remove();}); @@ -2394,19 +2410,6 @@ window.Raphael = (function () { obj.detachEvent("on" + type, f); return true; }; - if (type == "mouseover") { - obj.attachEvent("onmouseenter", f); - return function () { - obj.detachEvent("onmouseenter", f); - return detacher(); - }; - } else if (type == "mouseout") { - obj.attachEvent("onmouseleave", f); - return function () { - obj.detachEvent("onmouseleave", f); - return detacher(); - }; - } return detacher; }; } @@ -2415,30 +2418,30 @@ window.Raphael = (function () { (function (eventName) { Element[proto][eventName] = function (fn) { if (R.is(fn, "function")) { - this.events = this.events || {}; - this.events[eventName] = this.events[eventName] || {}; - this.events[eventName][fn] = this.events[eventName][fn] || []; - this.events[eventName][fn][push](addEvent(this.shape || this.node, eventName, fn, this)); + this.events = this.events || []; + this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node, eventName, fn, this)}); } return this; }; Element[proto]["un" + eventName] = function (fn) { - var e = this.events; - e && - e[eventName] && - e[eventName][fn] && - e[eventName][fn][length] && - e[eventName][fn].shift()() && - !e[eventName][fn][length] && - delete e[eventName][fn]; + var events = this.events, + l = events[length]; + while (l--) if (events[l].name == eventName && events[l].f == fn) { + events[l].unbind(); + events.splice(l, 1); + !events.length && delete this.events; + return this; + } return this; }; - })(events[i]); } Element[proto].hover = function (f_in, f_out) { return this.mouseover(f_in).mouseout(f_out); }; + Element[proto].unhover = function (f_in, f_out) { + return this.unmouseover(f_in).unmouseout(f_out); + }; paper.circle = function (x, y, r) { return theCircle(this, x || 0, y || 0, r || 0); }; @@ -2463,9 +2466,16 @@ window.Raphael = (function () { return new Set(itemsArray); }; paper.setSize = setSize; + function scaleToString() { + return this.x + S + this.y; + }; Element[proto].scale = function (x, y, cx, cy) { if (x == null && y == null) { - return {x: this._.sx, y: this._.sy, toString: function () { return this.x + S + this.y; }}; + return { + x: this._.sx, + y: this._.sy, + toString: scaleToString + }; } y = y || x; !+y && (y = x); @@ -2482,8 +2492,8 @@ window.Raphael = (function () { ky = y / this._.sy; cx = (+cx || cx == 0) ? cx : rcx; cy = (+cy || cy == 0) ? cy : rcy; - var dirx = ~~(x / Math.abs(x)), - diry = ~~(y / Math.abs(y)), + var dirx = ~~(x / math.abs(x)), + diry = ~~(y / math.abs(y)), s = this.node.style, ncx = cx + (rcx - cx) * kx, ncy = cy + (rcy - cy) * ky; @@ -2496,11 +2506,11 @@ window.Raphael = (function () { newx = ncx - neww / 2, newy = ncy - newh / 2; this.attr({ - width: neww, height: newh, + r: newr, + width: neww, x: newx, - y: newy, - r: newr + y: newy }); break; case "circle": @@ -2621,7 +2631,7 @@ window.Raphael = (function () { } var p = .3, s = p / 4; - return pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1; + return pow(2, -10 * n) * math.sin((n - s) * (2 * math.PI) / p) + 1; }, bounce: function (n) { var s = 7.5625, @@ -2942,6 +2952,7 @@ window.Raphael = (function () { while (i--) { this.items[i].insertAfter(el); } + return this; }; Set[proto].getBBox = function () { var x = [],