tt++,tt++,tt++,tt++,tt--,tt--,tt--,tt--,__V_A[2]+="new Array(); FillSection[fls].st=flagBeg,FillSection[fls].ed=StokeMouseEvent.length, FillSection[fls].ed2=Nx.length; time_count+=new Date().getTime()-startTime; OutlineDraw(ItemArray[cur].strokeType,ItemArray[cur].fillType,flagBeg,3); return; var last_type; function draw_a_path_line1(Ax,Ay) { Ax=Math.round(Ax); Ay=Math.round(Ay); if(cur_x==Ax && cur_y==Ay) return; c++; if(Ay>cur_y) PathOrient[CurveAddlevel]=2; else if(Ay<cur_y) PathOrient[CurveAddlevel]=1; else  PathOrient[CurveAddlevel]=0; if(subPath) { if(PathOrient[CurveAddlevel-1]==0)  { PathOrient[CurveAddlevel-1]=PathOrient[CurveAddlevel]; CurveAddlevel--; } else { if(PathOrient[CurveAddlevel]==0) CurveAddlevel--; else if(PathOrient[CurveAddlevel]==PathOrient[CurveAddlevel-1] && last_type>0) CurveAddlevel--; } } MakeLine(cur_x, cur_y, Ax, Ay); subPath=1,cur_x=Ax,cur_y=Ay, DrawingLevel++, CurveAddlevel++, last_type=1; } function draw_a_path_line0(Ax,Ay) { Ax=Math.round(Ax); Ay=Math.round(Ay); c++; subPath=0, save_x=cur_x=Ax,save_y=cur_y=Ay; if(c>3) { var fls=FillSection.length; FillSection[fls]= new Array(); FillSection[fls].st=flagBeg,FillSection[fls].ed=StokeMouseEvent.length, FillSection[fls].ed2=Nx.length; DrawingLevel++, CurveAddlevel++,flagBeg=StokeMouseEvent.length ; return; } last_type=0; } function draw_path_curve(Ax,Ay,Ax1,Ay1,Ax2,Ay2) { if(cur_x==Ax && cur_y==Ay) return; last_type=2; PathOrient[CurveAddlevel]=0; MakeCurve(cur_x,cur_y,Ax1,Ay1,Ax2,Ay2,Ax,Ay); cur_x=a.x;cur_y=a.y,DrawingLevel++, CurveAddlevel++; } } function SplitPath2(path,CurXX,CurYY,cur) { var startTime=new Date().getTime(); FillSection=new Array(); Nx.legnth=0; StokeMouseEvent= new Array(); ItemMaxX=ItemMaxY=-60000; ItemMinX=ItemMinY=60000; CurrentItem=cur; var save_x,save_y; var cur_x,cur_y; var c=0; CurveAddlevel=0; DrawingLevel=0; var flagBeg=0; var rr,rr2;  var llen=0; var bb; if(ie5) path=path.d.replace(/([a-zA-Z])/g, \" $1 \"); else path=path.getAttribute(\"d\").replace(/([a-zA-Z])/g, \" $1 \"); OrgX=80; OrgY=40; path=path.replace(/-/g, \" -\"); rr2=path.split(/[\\r\\n\\t, ]/g); pc=rr2.length; bb=0; for(llen=0;llen<pc;llen++) { if(rr2[llen]!=\"\") { if(isNaN(rr2[llen])) rr2[bb++]=rr2[llen]; else rr2[bb++]=rr2[llen]*1; } } rr2.length=bb; var pc=0; var point; var pc=0; var curX,curY; CurXX/=OrgX; CurYY/=OrgY; var CurX,CurY; var SaveX,SaveY; var sX,sY; var PointCount=0; var rLen=rr2.length; var M0,M1; CurX=CurY=0; FirstMoveX=FirstMoveY=0; sX=0; var VX;  var yy=0; for(yy=0;yy<rLen;yy++) { VX=rr2[yy++]; M0=rr2[yy++]; M1=rr2[yy]; switch(VX) { case \"l\":  M0+=CurX,M1+=CurY; case \"L\":  draw_a_path_line1(M0*CurXX,M1*CurYY); CurX=M0,CurY=M1; break; case \"h\":  M0+=CurX; case \"H\":  yy--; draw_a_path_line1(M0*CurXX,CurY*CurYY); CurX=M0; break; case \"v\":  M0+=CurY; case \"V\":  yy--; draw_a_path_line1(CurX*CurXX,M0*CurYY); CurY=M0; break; case \"m\":  case \"M\":  if(!FirstMoveX && !FirstMoveY) { FirstMoveX=M0, FirstMoveY=M1, SaveX==M0,CurX=M0, SaveY==M1;CurY=M1; draw_a_path_line0(M0*CurXX,M1*CurYY); SaveX==M0,CurX=M0, SaveY==M1,CurY=M1; break;  } else  {  if(VX==\"m\") {M0+=CurX;M1+=CurY;} draw_a_path_line1(M0*CurXX,M1*CurYY); CurX=M0,CurY=M1, CurX=M0,CurY=M1; break;  } break; case \"z\":  case \"Z\":  ItemArray[cur].closed=1; if(x<rr2.length-3)  { draw_a_path_line1(SaveX*CurXX,SaveY*CurYY); FirstMoveX=FirstMoveY=0; } yy--; yy--; break; case \"a\":  M2= rr2[yy++];M3= rr2[yy++];M4= rr2[yy++];M5= rr2[yy++];M6= rr2[yy++]; M0+=CurX;M1+=CurY; M5+=CurX;M6+=CurY; case \"A\":  if(VX==\"A\"){M2= rr2[yy++];M3= rr2[yy++];M4= rr2[yy++];M5= rr2[yy++];M6= rr2[yy++];} pc=point.length; CurX=M5;CurY=M6; break;  case \"c\":  M2= rr2[yy++];M3= rr2[yy++];M4= rr2[yy++];M5= rr2[yy++]; M0+=CurX;M1+=CurY; M2+=CurX;M3+=CurY; M4+=CurX;M5+=CurY; case \"C\":  if(VX==\"C\") {M2= rr2[yy++];M3= rr2[yy++];M4= rr2[yy++];M5= rr2[yy++];} if(CurX==M4 && CurY==M5) continue; draw_path_curve(M0*CurXX,M1*CurYY,M2*CurXX,M3*CurYY,M4*CurXX,M5*CurYY); CurX=M4;CurY=M5; break;  case \"s\":  M2= rr2[yy++];M3= rr2[yy++]; M0+=CurX;M1+=CurY"