if(!window.console){window.console={};window.console.log=function(a){};window.console.dir=function(a){}}if(window.opera){window.console.log=function(a){opera.postError(a)}}function SvgCanvas(al){var h=!!window.opera;var ad=navigator.userAgent.indexOf("AppleWebKit")!=-1;var aC={};var ag={circle:["cx","cy","fill","fill-opacity","fill-rule","id","opacity","r","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],defs:[],desc:[],ellipse:["cx","cy","fill","fill-opacity","fill-rule","id","opacity","requiredFeatures","rx","ry","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],g:["id","display","fill","fill-opacity","fill-rule","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],image:["height","id","opacity","requiredFeatures","systemLanguage","transform","width","x","xlink:href","xlink:title","y"],line:["fill","fill-opacity","fill-rule","id","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform","x1","x2","y1","y2"],linearGradient:["id","gradientTransform","gradientUnits","requiredFeatures","spreadMethod","systemLanguage","x1","x2","y1","y2"],path:["d","fill","fill-opacity","fill-rule","id","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],polygon:["id","fill","fill-opacity","fill-rule","id","opacity","points","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],polyline:["id","fill","fill-opacity","fill-rule","opacity","points","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform"],radialGradient:["id","cx","cy","fx","fy","gradientTransform","gradientUnits","r","requiredFeatures","spreadMethod","systemLanguage"],rect:["fill","fill-opacity","fill-rule","height","id","opacity","requiredFeatures","rx","ry","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform","width","x","y"],stop:["id","offset","requiredFeatures","stop-color","stop-opacity","systemLanguage"],"switch":["id","requiredFeatures","systemLanguage"],svg:["id","height","requiredFeatures","systemLanguage","transform","viewBox","width","xmlns","xmlns:xlink"],text:["fill","fill-opacity","fill-rule","font-family","font-size","font-style","font-weight","id","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","systemLanguage","transform","text-anchor","x","xml:space","y"],title:[]};var ac={pathNodeTooltip:"Drag node to move it. Double-click node to change segment type",pathCtrlPtTooltip:"Drag control point to adjust curve properties"};var d=function(aP){return $("
").text(aP).html()};var U=function(aP){return $("").html(aP).text()};function Y(aR,aQ,aS){this.elem=aR;this.text=aS?("Change "+aR.tagName+" "+aS):("Change "+aR.tagName);this.newValues={};this.oldValues=aQ;for(var aP in aQ){if(aP=="#text"){this.newValues[aP]=aR.textContent}else{this.newValues[aP]=aR.getAttribute(aP)}}this.apply=function(){var aW=false;for(var aU in this.newValues){if(this.newValues[aU]){if(aU=="#text"){this.elem.textContent=this.newValues[aU]}else{this.elem.setAttribute(aU,this.newValues[aU])}}else{if(aU=="#text"){this.elem.textContent=""}else{this.elem.setAttribute(aU,"");this.elem.removeAttribute(aU)}}if(aU=="transform"){aW=true}}if(!aW){var aY=aM.getRotationAngle(aR);if(aY){var aX=aR.getBBox();var aT=aX.x+aX.width/2,aZ=aX.y+aX.height/2;var aV=["rotate(",aY," ",aT,",",aZ,")"].join("");if(aV!=aR.getAttribute("transform")){aR.setAttribute("transform",aV)}}}if(this.elem.tagName=="title"&&this.elem.parentNode.parentNode==S){K()}return true};this.unapply=function(){var aW=false;for(var aU in this.oldValues){if(this.oldValues[aU]){if(aU=="#text"){this.elem.textContent=this.oldValues[aU]}else{this.elem.setAttribute(aU,this.oldValues[aU])}}else{if(aU=="#text"){this.elem.textContent=""}else{this.elem.removeAttribute(aU)}}if(aU=="transform"){aW=true}}if(!aW){var aY=aM.getRotationAngle(aR);if(aY){var aX=aR.getBBox();var aT=aX.x+aX.width/2,aZ=aX.y+aX.height/2;var aV=["rotate(",aY," ",aT,",",aZ,")"].join("");if(aV!=aR.getAttribute("transform")){aR.setAttribute("transform",aV)}}}if(this.elem.tagName=="title"&&this.elem.parentNode.parentNode==S){K()}return true};this.elements=function(){return[this.elem]}}function a(aP,aQ){this.elem=aP;this.text=aQ||("Create "+aP.tagName);this.parent=aP.parentNode;this.apply=function(){this.elem=this.parent.insertBefore(this.elem,this.elem.nextSibling);if(this.parent==S){K()}};this.unapply=function(){this.parent=this.elem.parentNode;this.elem=this.elem.parentNode.removeChild(this.elem);if(this.parent==S){K()}};this.elements=function(){return[this.elem]}}function D(aQ,aP,aR){this.elem=aQ;this.text=aR||("Delete "+aQ.tagName);this.parent=aP;this.apply=function(){this.parent=this.elem.parentNode;this.elem=this.parent.removeChild(this.elem);if(this.parent==S){K()}};this.unapply=function(){this.elem=this.parent.insertBefore(this.elem,this.elem.nextSibling);if(this.parent==S){K()}};this.elements=function(){return[this.elem]};if(G[aQ.id]){delete G[aQ.id]}}function E(aQ,aR,aP,aS){this.elem=aQ;this.text=aS?("Move "+aQ.tagName+" to "+aS):("Move "+aQ.tagName);this.oldNextSibling=aR;this.oldParent=aP;this.newNextSibling=aQ.nextSibling;this.newParent=aQ.parentNode;this.apply=function(){this.elem=this.newParent.insertBefore(this.elem,this.newNextSibling);if(this.newParent==S){K()}};this.unapply=function(){this.elem=this.oldParent.insertBefore(this.elem,this.oldNextSibling);if(this.oldParent==S){K()}};this.elements=function(){return[this.elem]}}function aa(aP){this.text=aP||"Batch Command";this.stack=[];this.apply=function(){var aQ=this.stack.length;for(var aR=0;aR=0;aQ--){this.stack[aQ].unapply()}};this.elements=function(){var aQ=[];var aT=this.stack.length;while(aT--){var aS=this.stack[aT].elements();var aR=aS.length;while(aR--){if(aQ.indexOf(aS[aR])==-1){aQ.push(aS[aR])}}}return aQ};this.addSubCommand=function(aQ){this.stack.push(aQ)};this.isEmpty=function(){return this.stack.length==0}}function ay(aR,aQ){this.id=aR;this.selectedElement=aQ;this.locked=true;this.reset=function(aS,aT){this.locked=true;this.selectedElement=aS;this.resize();this.selectorGroup.setAttribute("display","inline")};this.selectorGroup=c({element:"g",attr:{id:("selectorGroup"+this.id)}});this.selectorRect=this.selectorGroup.appendChild(c({element:"path",attr:{id:("selectedBox"+this.id),fill:"none",stroke:"#22C","stroke-width":"1","stroke-dasharray":"5,5",style:"pointer-events:none"}}));this.selectorGrips={nw:null,n:null,ne:null,e:null,se:null,s:null,sw:null,w:null};this.rotateGripConnector=this.selectorGroup.appendChild(c({element:"line",attr:{id:("selectorGrip_rotateconnector_"+this.id),stroke:"#22C","stroke-width":"1"}}));this.rotateGrip=this.selectorGroup.appendChild(c({element:"circle",attr:{id:("selectorGrip_rotate_"+this.id),fill:"lime",r:4,stroke:"#22C","stroke-width":2,style:"cursor:url(images/rotate.png) 12 12, auto;"}}));for(var aP in this.selectorGrips){this.selectorGrips[aP]=this.selectorGroup.appendChild(c({element:"circle",attr:{id:("selectorGrip_resize_"+aP+"_"+this.id),fill:"#22C",r:4,style:("cursor:"+aP+"-resize"),"stroke-width":2,"pointer-events":"all",display:"none"}}))}this.showGrips=function(aS){var aU=aS?"inline":"none";this.rotateGrip.setAttribute("display",aU);this.rotateGripConnector.setAttribute("display",aU);var aV=this.selectedElement;for(var aT in this.selectorGrips){this.selectorGrips[aT].setAttribute("display",aU)}if(aV){this.updateGripCursors(aM.getRotationAngle(aV))}};this.updateGripCursors=function(aW){var aV=[];var aS=Math.round(aW/45);if(aS<0){aS+=8}for(var aT in this.selectorGrips){aV.push(aT)}while(aS>0){aV.push(aV.shift());aS--}var aU=0;for(var aT in this.selectorGrips){this.selectorGrips[aT].setAttribute("style",("cursor:"+aV[aU]+"-resize"));aU++}};this.resize=function(){var aS=this.selectorRect;var aZ=this.selectorGrips;var bg=this.selectedElement;var be=B(bg.getAttribute("stroke-width"));var a5=1/aM.getZoom();if(bg.getAttribute("stroke")!="none"&&!isNaN(be)){a5+=be/2}if(bg.tagName=="text"){a5+=2/aM.getZoom()}var aT=aM.getBBox(bg);if(bg.tagName=="g"){var a4=aM.getStrokedBBox(bg.childNodes);$.each(aT,function(bo,bp){aT[bo]=a4[bo]})}var a9=aM.getTransformList(bg);var bh=l(a9).matrix;bh.e*=M;bh.f*=M;var bi=aT.x-a5,bb=aT.y-a5,ba=aT.width+(a5<<1),bk=aT.height+(a5<<1);var aT={x:bi,y:bb,width:ba,height:bk};var bm=aO(bi*M,bb*M,ba*M,bk*M,bh);var aV=bm.aabox.x,aU=bm.aabox.y,aW=bm.aabox.width,a8=bm.aabox.height;var aY=aV+aW/2;var aX=aU+a8/2;var bl=aM.getRotationAngle(bg);if(bl){var a7=v.createSVGTransform();a7.setRotate(-bl,aY,aX);var bc=a7.matrix;bm.tl=C(bm.tl.x,bm.tl.y,bc);bm.tr=C(bm.tr.x,bm.tr.y,bc);bm.bl=C(bm.bl.x,bm.bl.y,bc);bm.br=C(bm.br.x,bm.br.y,bc);var a3=bm.tl.x,a2=bm.tl.y,a1=bm.tl.x,a0=bm.tl.y;a3=Math.min(a3,Math.min(bm.tr.x,Math.min(bm.bl.x,bm.br.x)));a2=Math.min(a2,Math.min(bm.tr.y,Math.min(bm.bl.y,bm.br.y)));a1=Math.max(a1,Math.max(bm.tr.x,Math.max(bm.bl.x,bm.br.x)));a0=Math.max(a0,Math.max(bm.tr.y,Math.max(bm.bl.y,bm.br.y)));aV=a3;aU=a2;aW=(a1-a3);a8=(a0-a2)}var bn=v.suspendRedraw(100);var bd="M"+aV+","+aU+" L"+(aV+aW)+","+aU+" "+(aV+aW)+","+(aU+a8)+" "+aV+","+(aU+a8)+"z";Z(aS,{d:bd});var a6={nw:[aV,aU],ne:[aV+aW,aU],sw:[aV,aU+a8],se:[aV+aW,aU+a8],n:[aV+(aW)/2,aU],w:[aV,aU+(a8)/2],e:[aV+aW,aU+(a8)/2],s:[aV+(aW)/2,aU+a8]};if(bg==aq[0]){for(var bf in a6){var bj=a6[bf];Z(aZ[bf],{cx:bj[0],cy:bj[1]})}}if(bl){this.selectorGroup.setAttribute("transform","rotate("+[bl,aY,aX].join(",")+")")}else{this.selectorGroup.setAttribute("transform","")}Z(this.rotateGripConnector,{x1:aV+(aW)/2,y1:aU,x2:aV+(aW)/2,y2:aU-20});Z(this.rotateGrip,{cx:aV+(aW)/2,cy:aU-20});v.unsuspendRedraw(bn)};this.reset(aQ)}function aN(){this.selectorParentGroup=null;this.rubberBandBox=null;this.selectors=[];this.selectorMap={};var aP=this;this.initGroup=function(){if(aP.selectorParentGroup&&aP.selectorParentGroup.parentNode){aP.selectorParentGroup.parentNode.removeChild(aP.selectorParentGroup)}aP.selectorParentGroup=am.createElementNS(ak,"g");aP.selectorParentGroup.setAttribute("id","selectorParentGroup");v.appendChild(aP.selectorParentGroup);aP.selectorMap={};aP.selectors=[];aP.rubberBandBox=null};this.requestSelector=function(aR){if(aR==null){return null}var aS=this.selectors.length;if(typeof(this.selectorMap[aR.id])=="object"){this.selectorMap[aR.id].locked=true;return this.selectorMap[aR.id]}for(var aQ=0;aQ=0){return this._xforms[aQ]}return null};this.insertItemBefore=function(aT,aR){var aV=null;if(aR>=0){if(aR=0){this._xforms[aQ]=aR;aS=aR;this._list._update()}return aS};this.removeItem=function(aR){var aU=null;if(aR=0){var aU=this._xforms[aR];var aT=new Array(this.numberOfItems-1);for(var aS=0;aS0){F=F.splice(0,ao)}F.push(aP);ao=F.length};var p=function(){if(s.getid){return Q("getid",aG)}return av+aG};var aJ=function(){var aP=p();while(b(aP)){aG++;aP=p()}return aP};var Q=function(aQ,aP){if(s[aQ]){return s[aQ](this,aP)}};var A=function(aT){if(aT.nodeType==3){aT.nodeValue=aT.nodeValue.replace(/^\s+|\s+$/g,"");if(!aT.nodeValue.length){aT.parentNode.removeChild(aT)}}if(aT.nodeType!=1){return}var aU=aT.ownerDocument;var aS=aT.parentNode;if(!aU||!aS){return}var aV=ag[aT.nodeName];if(aV!=undefined){var aR=aT.attributes.length;while(aR--){var aQ=aT.attributes.item(aR).nodeName;if(aV.indexOf(aQ)==-1){aT.removeAttribute(aQ)}if(aQ=="d"){aT.setAttribute("d",o.convertPath(aT))}}aR=aT.childNodes.length;while(aR--){A(aT.childNodes.item(aR))}}else{var aP=[];while(aT.hasChildNodes()){aP.push(aS.insertBefore(aT.firstChild,aT))}aS.removeChild(aT);var aR=aP.length;while(aR--){A(aP[aR])}}};var aH=function(){var aR=S.getElementsByTagNameNS(ak,"defs");if(!aR||!aR.length){return}var aY=S.getElementsByTagNameNS(ak,"*");var aT=[];$.each(aY,function(aZ,a0){var a2=a0.getAttribute("fill");if(a2&&a2.indexOf("url(#")==0){aT.push(a2)}var a1=a0.getAttribute("stroke");if(a1&&a1.indexOf("url(#")==0){aT.push(a1)}});var aV=S.getElementsByTagNameNS(ak,"linearGradient");var aW=[];var aS=aV.length;while(aS--){var aX=aV[aS];var aP=aX.id;var aU="url(#"+aP+")";if($.inArray(aU,aT)==-1){aX.parentNode.removeChild(aX)}}var aS=aR.length;while(aS--){var aQ=aR[aS];if(!aQ.getElementsByTagNameNS(ak,"*").length){aQ.parentNode.removeChild(aQ)}}};var f=function(){aH();o.clear(true);$.each(S.childNodes,function(aQ,aR){if(aQ&&aR.nodeType==8&&aR.data.indexOf("Created with")!=-1){S.insertBefore(aR,S.firstChild)}});var aP=aw(S,0);return aP};var aw=function(aR,aQ){var aS=new Array();if(aR){W(aR);var a1=aR.attributes;var aX;var aU;var aY=aR.childNodes;for(var aU=0;aU=0;aU--){aX=a1.item(aU);var aW=aX.nodeValue;if(aW!=""){if(aW.indexOf("pointer-events")==0){continue}aS.push(" ");if(aX.localName=="d"){aW=o.convertPath(aR,true)}if(!isNaN(aW)){aW=aF(aW)}if(R.apply&&aR.nodeName=="image"&&aX.localName=="href"&&R.images&&R.images=="embed"){var aT=aA[aW];if(aT){aW=aT}}if(aX.namespaceURI==af){aS.push("xlink:")}else{if(aX.namespaceURI=="http://www.w3.org/2000/xmlns/"&&aX.localName!="xmlns"){aS.push("xmlns:")}else{if(aX.namespaceURI==J){aS.push("xml:")}}}aS.push(aX.localName);aS.push('="');aS.push(aW);aS.push('"')}}}if(aR.hasChildNodes()){aS.push(">");aQ++;var aV=false;for(var aU=0;aU");break}}aQ--;if(!aV){aS.push("\n");for(var aU=0;aU")}else{aS.push("/>")}}return aS.join("")};this.embedImage=function(aP,aQ){$(new Image()).load(function(){var aR=document.createElement("canvas");aR.width=this.width;aR.height=this.height;aR.getContext("2d").drawImage(this,0,0);try{var aS=";svgedit_url="+encodeURIComponent(aP);aS=aR.toDataURL().replace(";base64",aS+";base64");aA[aP]=aS}catch(aT){aA[aP]=false}N=aP;if(aQ){aQ(aA[aP])}}).attr("src",aP)};this.fixOperaXML=function(aS,aQ){var aR=aS.attributes;$.each(aR,function(aV,aU){if(aU.nodeValue.indexOf(",")==-1){return}var aX=aU.prefix=="xlink"?af:aU.prefix=="xml"?J:null;var aW=aQ.getAttribute(aU.localName);if(aX){aS.setAttributeNS(aX,aU.nodeName,aW)}else{aS.setAttribute(aU.nodeName,aW)}});var aT=aS.childNodes;var aP=aQ.childNodes;$.each(aT,function(aU,aV){if(aV.nodeType==1){aM.fixOperaXML(aV,aP[aU])}})};var aB=function(){var aS=(L=="none"?"position":"size");var aP=new aa(aS);var aQ=aq.length;while(aQ--){var aR=i(aq[aQ]);if(aR){aP.addSubCommand(aR)}}if(!aP.isEmpty()){at(aP);Q("changed",aq)}};var u=[0,"z","M","m","L","l","C","c","Q","q","A","a","H","h","V","v","S","s","T","t"];var ab=function(aP){console.log([aP.a,aP.b,aP.c,aP.d,aP.e,aP.f])};var q=function(a3,bd,a6){var aU=function(be,bf){return C(be,bf,a6)};var aT=function(be){return a6.a*be};var a2=function(be){return a6.d*be};var aY=aM.getBBox(a3);switch(a3.tagName){case"line":var aX=aU(bd.x1,bd.y1),aW=aU(bd.x2,bd.y2);bd.x1=aX.x;bd.y1=aX.y;bd.x2=aW.x;bd.y2=aW.y;break;case"circle":var bc=aU(bd.cx,bd.cy);bd.cx=bc.x;bd.cy=bc.y;var a7=aO(aY.x,aY.y,aY.width,aY.height,a6);var aZ=a7.tr.x-a7.tl.x,ba=a7.bl.y-a7.tl.y;bd.r=Math.min(aZ/2,ba/2);break;case"ellipse":var bc=aU(bd.cx,bd.cy);bd.cx=bc.x;bd.cy=bc.y;bd.rx=aT(bd.rx);bd.ry=a2(bd.ry);break;case"rect":case"image":var aX=aU(bd.x,bd.y);bd.x=aX.x;bd.y=aX.y;bd.width=aT(bd.width);bd.height=a2(bd.height);break;case"text":var aQ=aM.getTransformList(a3);var a4=v.createSVGTransform();a4.setMatrix(P(l(aQ).matrix,a6));aQ.clear();aQ.appendItem(a4);break;case"polygon":case"polyline":var a9=bd.points.length;for(var a8=0;a80){var bv=bk.numberOfItems;while(bv--){var bo=bk.getItem(bv);if(bo.type==0){bk.removeItem(bv)}else{if(bo.type==1){if(aK(bo.matrix)){bk.removeItem(bv)}}else{if(bo.type==4){if(bo.angle==0){bk.removeItem(bv)}}}}}}if(bk.numberOfItems==0){bc.removeAttribute("transform");return null}var aQ=new aa("Transform");var a8={},bC=null;switch(bc.tagName){case"line":a8.x1=bc.getAttribute("x1");a8.y1=bc.getAttribute("y1");a8.x2=bc.getAttribute("x2");a8.y2=bc.getAttribute("y2");break;case"circle":a8.cx=bc.getAttribute("cx");a8.cy=bc.getAttribute("cy");a8.r=bc.getAttribute("r");break;case"ellipse":a8.cx=bc.getAttribute("cx");a8.cy=bc.getAttribute("cy");a8.rx=bc.getAttribute("rx");a8.ry=bc.getAttribute("ry");break;case"rect":case"image":a8.x=bc.getAttribute("x");a8.y=bc.getAttribute("y");a8.width=bc.getAttribute("width");a8.height=bc.getAttribute("height");break;case"text":a8.x=bc.getAttribute("x");a8.y=bc.getAttribute("y");break;case"polygon":case"polyline":bC={};bC.points=bc.getAttribute("points");var a7=bc.points;var a5=a7.numberOfItems;a8.points=new Array(a5);for(var by=0;by=3&&bk.getItem(aX-2).type==3&&bk.getItem(aX-3).type==2&&bk.getItem(aX-1).type==2){bj=3;var bG=bk.getItem(aX-3).matrix;var a1=bk.getItem(aX-2).matrix;var bq=bk.getItem(aX-1).matrix;var a3=bc.childNodes;var bB=a3.length;while(bB--){var aU=a3.item(bB);bw=0;bu=0;if(aU.nodeType==1){var a6=aM.getTransformList(aU);var bs=l(a6).matrix;var a4=aM.getRotationAngle(aU);var bm=T;T=aU.getAttribute("transform");if(a4||ap(a6)){var bl=v.createSVGTransform();bl.setMatrix(P(bG,a1,bq,bs));a6.clear();a6.appendItem(bl,0)}else{var aT=P(bs.inverse(),bq,bs);var be=v.createSVGMatrix();be.e=-aT.e;be.f=-aT.f;var bA=P(be.inverse(),bs.inverse(),bG,a1,bq,bs,aT.inverse());var bE=v.createSVGTransform(),bg=v.createSVGTransform(),a0=v.createSVGTransform();bE.setTranslate(aT.e,aT.f);bg.setScale(bA.a,bA.d);a0.setTranslate(be.e,be.f);a6.appendItem(a0);a6.appendItem(bg);a6.appendItem(bE)}aQ.addSubCommand(i(aU));T=bm}}bk.removeItem(aX-1);bk.removeItem(aX-2);bk.removeItem(aX-3)}else{if(aX>=3&&bk.getItem(aX-1).type==1){bj=3;bs=l(bk).matrix;var bl=v.createSVGTransform();bl.setMatrix(bs);bk.clear();bk.appendItem(bl)}else{if((aX==1||(aX>1&&bk.getItem(1).type!=3))&&bk.getItem(0).type==2){bj=2;var ba=l(bk).matrix;bk.removeItem(0);var bf=l(bk).matrix.inverse();var a2=P(bf,ba);bw=a2.e;bu=a2.f;if(bw!=0||bu!=0){var a3=bc.childNodes;var bB=a3.length;while(bB--){var aU=a3.item(bB);if(aU.nodeType==1){var bm=T;T=aU.getAttribute("transform");var a6=aM.getTransformList(aU);var bd=v.createSVGTransform();bd.setTranslate(bw,bu);a6.insertItemBefore(bd,0);aQ.addSubCommand(i(aU));T=bm}}T=bm}}else{if(aX==1&&bk.getItem(0).type==1&&!bb){bj=1;var bs=bk.getItem(0).matrix;var a3=bc.childNodes;var bB=a3.length;while(bB--){var aU=a3.item(bB);if(aU.nodeType==1){var bm=T;T=aU.getAttribute("transform");var a6=aM.getTransformList(aU);var bx=P(bs,l(a6).matrix);var bp=v.createSVGTransform();bp.setMatrix(bx);a6.clear();a6.appendItem(bp,0);aQ.addSubCommand(i(aU));T=bm}}bk.clear()}else{if(bb){var aR=v.createSVGTransform();aR.setRotate(bb,aS.x,aS.y);bk.insertItemBefore(aR,0)}if(bk.numberOfItems==0){bc.removeAttribute("transform")}return null}}}}if(bj==2){if(bb){var aR=v.createSVGTransform();aR.setRotate(bb,aS.x,aS.y);bk.insertItemBefore(aR,0)}}else{if(bj==3){var bs=l(bk).matrix;var aP=v.createSVGTransform();aP.setRotate(bb,bF.x,bF.y);var bh=aP.matrix;var br=v.createSVGTransform();br.setRotate(bb,aS.x,aS.y);var a9=br.matrix.inverse();var bt=bs.inverse();var bn=P(bt,a9,bh,bs);bw=bn.e;bu=bn.f;if(bw!=0||bu!=0){var a3=bc.childNodes;var bB=a3.length;while(bB--){var aU=a3.item(bB);if(aU.nodeType==1){var bm=T;T=aU.getAttribute("transform");var a6=aM.getTransformList(aU);var bd=v.createSVGTransform();bd.setTranslate(bw,bu);a6.insertItemBefore(bd,0);aQ.addSubCommand(i(aU));T=bm}}}if(bb){bk.insertItemBefore(br,0)}}}}else{var aV=aM.getBBox(bc);var bF={x:aV.x+aV.width/2,y:aV.y+aV.height/2};var aS=C(aV.x+aV.width/2,aV.y+aV.height/2,l(bk).matrix);var bs=v.createSVGMatrix();var a4=aM.getRotationAngle(bc);if(a4){for(var by=0;by=3&&bk.getItem(aX-2).type==3&&bk.getItem(aX-3).type==2&&bk.getItem(aX-1).type==2){bj=3;bs=l(bk,aX-3,aX-1).matrix;bk.removeItem(aX-1);bk.removeItem(aX-2);bk.removeItem(aX-3)}else{if(aX==4&&bk.getItem(aX-1).type==1){bj=3;bs=l(bk).matrix;var bl=v.createSVGTransform();bl.setMatrix(bs);bk.clear();bk.appendItem(bl);bs=v.createSVGMatrix()}else{if((aX==1||(aX>1&&bk.getItem(1).type!=3))&&bk.getItem(0).type==2){bj=2;var bz=bk.getItem(0).matrix,aY=l(bk,1).matrix,aW=aY.inverse();bs=P(aW,bz,aY);bk.removeItem(0)}else{if(aX==1&&bk.getItem(0).type==1&&!a4){bs=l(bk).matrix;switch(bc.tagName){case"line":a8.x1=bc.getAttribute("x1");a8.y1=bc.getAttribute("y1");a8.x2=bc.getAttribute("x2");a8.y2=bc.getAttribute("y2");case"polyline":case"polygon":a8.points=bc.getAttribute("points");if(a8.points){var a7=bc.points;var a5=a7.numberOfItems;a8.points=new Array(a5);for(var by=0;by1){aU.showGrips(false)}}}Q("selected",aq);if(aT){t.requestSelector(aq[0]).showGrips(true)}else{if(aq.length>1){t.requestSelector(aq[0]).showGrips(false)}}aq.sort(function(aW,aV){if(aW&&aV&&aW.compareDocumentPosition){return 3-(aV.compareDocumentPosition(aW)&6)}else{if(aW==null){return 1}}});while(aq[0]==null){aq.shift(0)}};this.removeFromSelection=function(aQ){if(aq[0]==null){return}if(aQ.length==0){return}var aT=new Array(aq.length);var aV=new Array(n.length);var aR=0;var aP=aq.length;for(var aS=0;aS1){var aQ=aR[aS-1];aP=aT(aQ,aP)}return aP};var l=function(aV,aU,aQ){var aU=aU==undefined?0:aU;var aQ=aQ==undefined?(aV.numberOfItems-1):aQ;aU=parseInt(aU);aQ=parseInt(aQ);if(aU>aQ){var aR=aQ;aQ=aU;aU=aR}var aP=v.createSVGMatrix();for(var aT=aU;aT<=aQ;++aT){var aS=(aT>=0&&aT0){aM.removeFromSelection(bq)}if(bC.length>0){aM.addToSelection(bC)}break;case"resize":var bt=aM.getTransformList(bp);var bb=ap(bt);var a6=bb?aV:aM.getBBox(bp),a4=a6.x,a5=a6.y,aX=a6.width,aZ=a6.height,a2=(x-aU),a1=(y-aS);var bg=aM.getRotationAngle(bp);if(bg){var bx=Math.sqrt(a2*a2+a1*a1);var bi=Math.atan2(a1,a2)-bg*Math.PI/180;a2=bx*Math.cos(bi);a1=bx*Math.sin(bi)}if(L.indexOf("n")==-1&&L.indexOf("s")==-1){a1=0}if(L.indexOf("e")==-1&&L.indexOf("w")==-1){a2=0}var bG=null;var bB=0,bA=0;var a8=aZ?(aZ+a1)/aZ:1,a9=aX?(aX+a2)/aX:1;if(L.indexOf("n")!=-1){a8=aZ?(aZ-a1)/aZ:1;bA=aZ}if(L.indexOf("w")!=-1){a9=aX?(aX-a2)/aX:1;bB=aX}var bI=v.createSVGTransform(),bs=v.createSVGTransform(),bc=v.createSVGTransform();bI.setTranslate(-(a4+bB),-(a5+bA));if(br.shiftKey){if(a9==1){a9=a8}else{a8=a9}}bs.setScale(a9,a8);bc.setTranslate(a4+bB,a5+bA);if(bb){var bo=bg?1:0;bt.replaceItem(bI,2+bo);bt.replaceItem(bs,1+bo);bt.replaceItem(bc,0+bo)}else{var a7=bt.numberOfItems;bt.replaceItem(bc,a7-3);bt.replaceItem(bs,a7-2);bt.replaceItem(bI,a7-1)}var bd=n[0];bd.x=a4;bd.y=a5;if(bB){bd.x+=a2}if(bA){bd.y+=a1}t.requestSelector(bp).resize();break;case"zoom":x*=M;y*=M;Z(g,{x:Math.min(aU*M,x),y:Math.min(aS*M,y),width:Math.abs(x-aU*M),height:Math.abs(y-aS*M)},100);break;case"text":Z(bj,{x:x,y:y},1000);break;case"line":var bk=null;if(!window.opera){v.suspendRedraw(1000)}bj.setAttributeNS(null,"x2",x);bj.setAttributeNS(null,"y2",y);if(!window.opera){v.unsuspendRedraw(bk)}break;case"square":case"rect":case"image":var bH=(aE=="square")||br.shiftKey;var bu=Math.abs(x-aU),bF=Math.abs(y-aS),bf,be;if(bH){bu=bF=Math.max(bu,bF);bf=aU=0){bd=ba.indexOf(",",a0+1)>=0}else{bd=ba.indexOf(" ",ba.indexOf(" ")+1)>=0}break;case"line":bd=(aZ.getAttribute("x1")!=aZ.getAttribute("x2")||aZ.getAttribute("y1")!=aZ.getAttribute("y2"));break;case"square":case"rect":bd=(aZ.getAttribute("width")!=0||aZ.getAttribute("height")!=0);break;case"image":bd=(aZ.getAttribute("width")!=0||aZ.getAttribute("height")!=0);break;case"circle":bd=(aZ.getAttribute("r")!=0);break;case"ellipse":bd=(aZ.getAttribute("rx")!=null||aZ.getAttribute("ry")!=null);break;case"fhellipse":if((aR.maxx-aR.minx)>0&&(aR.maxy-aR.miny)>0){aZ=c({element:"ellipse",attr:{cx:(aR.minx+aR.maxx)/2,cy:(aR.miny+aR.maxy)/2,rx:(aR.maxx-aR.minx)/2,ry:(aR.maxy-aR.miny)/2,id:p(),fill:an.fill,stroke:an.stroke,"stroke-width":an.stroke_width,"stroke-dasharray":an.stroke_style,opacity:an.opacity,"stroke-opacity":an.stroke_opacity,"fill-opacity":an.fill_opacity,style:"pointer-events:inherit"}});Q("changed",[aZ]);bd=true}break;case"fhrect":if((aR.maxx-aR.minx)>0&&(aR.maxy-aR.miny)>0){aZ=c({element:"rect",attr:{x:aR.minx,y:aR.miny,width:(aR.maxx-aR.minx),height:(aR.maxy-aR.miny),id:p(),fill:an.fill,stroke:an.stroke,"stroke-width":an.stroke_width,"stroke-dasharray":an.stroke_style,opacity:an.opacity,"stroke-opacity":an.stroke_opacity,"fill-opacity":an.fill_opacity,style:"pointer-events:inherit"}});Q("changed",[aZ]);bd=true}break;case"text":bd=true;aM.clearSelection();break;case"path":aZ=null;ah=true;var be=o.mouseUp(a6,aZ,aY,aX);aZ=be.element;bd=be.keep;break;case"pathedit":bd=true;aZ=null;o.mouseUp(a6);break;case"rotate":bd=true;aZ=null;aE="select";var a4=aM.finishUndoableChange();if(!a4.isEmpty()){at(a4)}aB();break;default:console.log("Unknown mode in mouseup: "+aE);break}if(!bd&&aZ!=null){aZ.parentNode.removeChild(aZ);aZ=null;var a5=a6.target;while(a5.parentNode.parentNode.tagName=="g"){a5=a5.parentNode}if((aE!="path"||current_path_pts.length==0)&&a5.parentNode.id!="selectorParentGroup"&&a5.id!="svgcanvas"&&a5.id!="svgroot"){aM.addToSelection([a5],true);aM.setMode("select")}}else{if(aZ!=null){aM.addedNew=true;aZ.setAttribute("opacity",an.opacity);aZ.setAttribute("style","pointer-events:inherit");W(aZ);if(aE=="path"){o.toEditMode(aZ)}else{if(aE=="text"||aE=="image"){aM.addToSelection([aZ],true)}}at(new a(aZ));Q("changed",[aZ])}}T=null};$(al).mousedown(aQ).mousemove(aT);$(window).mouseup(aP)}());var o=function(){var a0=[];var aZ=null;var a3=[];var a4=-1;var ba=-1;var a7=null;var a5=-1;var aW=false;var aR=function(){if(!aZ){return}var bd=v.suspendRedraw(100);aV();aX();a2();v.unsuspendRedraw(bd)};var aU=function(be){var bd=$("#pathpointgrip_container,#ctrlpointgrip_container");$.each(bd,function(){if(!be){this.removeAttribute("transform")}else{this.setAttribute("transform",be)}})};var aX=function(){a3=[];var bd=aZ.pathSegList;var bk=bd.getItem(0).x,bi=bd.getItem(0).y;a3.push(bk*M);a3.push(bi*M);var bg=bd.numberOfItems;for(var bf=1;bf *").attr("display","none");var bd=b("path_stretch_line");if(bd){bd.setAttribute("display","none")}$("#ctrlpointgrip_container *").attr("display","none")};var bb=function(bd){var be=bc();var bg=a3.length/2-1;if(be&&bd==bg){a4=0}else{a4=bd}$("#pathpointgrip_container circle").attr("stroke","#00F");var bh=(a4==0&&be)?bg:bd;$("#pathpointgrip_"+bh).attr("stroke","#0FF");var bf=$("#pathpointgrip_"+bd);$("#ctrlpointgrip_container circle").attr("fill","#EEE");$("#ctrlpointgrip_"+a4+"c1, #ctrlpointgrip_"+a4+"c2").attr("fill","#0FF");a6();a6(true);Q("selected",[bf[0]])};var a2=function(br){var bm=a3.length;for(var bi=0;bi=aZ.pathSegList.numberOfItems){bf.setAttribute("display","none");return}if(!bg){aS(2,0,aT(a4,true),bf)}else{var bd=aZ.pathSegList.getItem(a4+1);var be=[bd.x,bd.y];if(bd.x1!=null&&bd.x2!=null){be.splice(2,0,bd.x1,bd.y1,bd.x2,bd.y2)}be=$.map(be,function(bj){return bj*M});aS(bd.pathSegType,1,be,bf)}};var a1=function(bE,bC,bq){var bz=bE/M;var by=bC/M;var bA=bc();var bH=ba*2;var bw=a3.length/2-1;var bD=ba==0||(bA&&ba==bw);var bK=!bA&&ba==bw;var bk=aM.getRotationAngle(aZ,true);if(bk){var bh=n[0];var bn=(bh.x+bh.width/2)*M,bm=(bh.y+bh.height/2)*M;var bg=bE-bn,be=bC-bm;var bF=Math.sqrt(bg*bg+be*be);var bl=Math.atan2(be,bg)-bk;a3[bH]=bE=bn+bF*Math.cos(bl);a3[bH+1]=bC=bm+bF*Math.sin(bl);bz=bE/M;by=bC/M}else{a3[bH]=bz*M;a3[bH+1]=by*M}if(bD&&bA){a3[0]=a3[bH];a3[1]=a3[bH+1];ba=0}var br=ba;var bf=aT(br)[0];var bd=aT(br)[1];var bp=aZ.pathSegList.getItem(br);var bo=bz-bq[br*2];var bL=by-bq[br*2+1];var bG=bp.pathSegType;var bx=[];if(bG==6){bx=[bf,bd,bp.x1,bp.y1,bp.x2+bo,bp.y2+bL]}else{if(bD){bx=aT(0)}else{bx=[bf,bd]}}aS(bG,br,bx);var bt=function(bN,bR){var bP,bQ=aZ.pathSegList.getItem(bN);var bO=bQ.pathSegType;if(bR){bQ.x+=bo;bQ.y+=bL}switch(bO){case 1:bP=[];break;case 4:bP=[bQ.x,bQ.y];break;case 6:if(bR){bQ.x1-=bo;bQ.y1-=bL;bQ.x2+=bo;bQ.y2+=bL}bP=[bQ.x,bQ.y,bQ.x1+bo,bQ.y1+bL,bQ.x2,bQ.y2];break;default:break}aS(bO,bN,bP);return bO};if(bA||!bK){var bI=bt(br+1)}else{var bI=0}if(bD&&bA){var bB=bt(bw,1)}var bs=b("pathpointgrip_"+ba);if(bs){bs.setAttribute("cx",bE);bs.setAttribute("cy",bC);if(bA&&bD){var bs=b("pathpointgrip_"+bw);bs.setAttribute("cx",bE);bs.setAttribute("cy",bC)}Q("changed",[bs])}if(bD){bG=bB}if(bG!=4){var bJ=bD?bw:br;var bu=(bJ-1)+"c2";var bi=b("ctrlLine_"+bu);if(bi){if(!(!bA&&ba==0)){var bj=bi.getAttribute("x2")-0+bo*M;var bM=bi.getAttribute("y2")-0+bL*M;aP(bj,bM,bE,bC,bu,true)}}}if(bI!=4){var bv=(ba)+"c1";var bi=b("ctrlLine_"+bv);if(bi){var bj=bi.getAttribute("x2")-0+bo*M;var bM=bi.getAttribute("y2")-0+bL*M;aP(bj,bM,bE,bC,bv,true)}}a6();if(bI!=4){a6(true)}};var aY=function(be,bd,bh,br){var bu=aZ.pathSegList;if(bh+1>=bu.numberOfItems){bh=-1}var bp=bu.getItem(bh+1);if(bp.pathSegType!=6){return}ctrl_pt_drag=bh+"c"+br;var bk=be/M;var bj=bd/M;var bt=aM.getRotationAngle(aZ,true);if(bt){var bl=n[0];var bg=(bl.x+bl.width/2)*M,bf=(bl.y+bl.height/2)*M;var bo=be-bg,bn=bd-bf;var bq=Math.sqrt(bo*bo+bn*bn);var bi=Math.atan2(bn,bo)-bt;be=bg+bq*Math.cos(bi);bd=bf+bq*Math.sin(bi);bk=be/M;bj=bd/M}bp["x"+br]=bk;bp["y"+br]=bj;aS(6,bh+1,[bp.x,bp.y,bp.x1,bp.y1,bp.x2,bp.y2]);a6(true);var bs=b("ctrlpointgrip_"+ctrl_pt_drag);if(bs){bs.setAttribute("cx",be);bs.setAttribute("cy",bd);var bm=b("ctrlLine_"+ctrl_pt_drag);bm.setAttribute("x2",be);bm.setAttribute("y2",bd)}};var aT=function(be,bf){var bd=a3.length;var bg=bd/2;if(be<0){be+=bg}else{if(be>=bg){be-=bg}}var bh=bf?1:M;return[a3[be*2]/bh,a3[be*2+1]/bh]};var aS=function(bl,bj,bm,bn){if(!bn){bn=aZ}var bd="createSVGPathSeg"+a0[bl];var bg=bn[bd].apply(bn,bm);if(aC.pathReplaceItem){bn.pathSegList.replaceItem(bg,bj)}else{var be=bn.pathSegList;var bk=be.numberOfItems;var bi=[];for(var bh=0;bh=bh-1){bg=0;if(!bn){return}}}var bo=aT(bi,true);var bl=bo[0]-(bm-bo[0]);var bj=bo[1]-(bk-bo[1]);aY(bl,bj,bg,bd,true)}}}},mouseUp:function(bn,bf,be,bd){if(aE=="path"){var bk=be/M;var bi=bd/M;var bg=b("path_stretch_line");if(!bg){bg=document.createElementNS(ak,"line");Z(bg,{id:"path_stretch_line",stroke:"#22C","stroke-width":"0.5"});bg=b("selectorParentGroup").appendChild(bg)}bg.setAttribute("display","inline");var bv=null;if(a3.length==0){a3.push(bk);a3.push(bi);d_attr="M"+bk+","+bi+" ";c({element:"path",attr:{d:d_attr,id:aJ(),fill:an.fill,"fill-opacity":an.fill_opacity,stroke:an.stroke,"stroke-width":an.stroke_width,"stroke-dasharray":an.stroke_style,"stroke-opacity":an.stroke_opacity,opacity:an.opacity/2,style:"pointer-events:inherit"}});Z(bg,{x1:be,y1:bd,x2:be,y2:bd});a8(be,bd,0)}else{var bt=a3.length;var bh=6/M;var bs=false;while(bt){bt-=2;var bo=a3[bt],bm=a3[bt+1];if(bk>=(bo-bh)&&bk<=(bo+bh)&&bi>=(bm-bh)&&bi<=(bm+bh)){bs=true;break}}var bq=b(p());var bu=a3.length;if(bs){if(bt==0&&bu>=6){var bx=a3[0];var bw=a3[1];d_attr+=["L",bx,",",bw,"z"].join("");bq.setAttribute("d",d_attr)}else{if(bu<3){bv=false;return bv}}aV();bf=bq;a3=[];ah=false}else{var br=a3[bu-2],bp=a3[bu-1];a3.push(bk);a3.push(bi);d_attr+="L"+B(bk)+","+B(bi)+" ";bq.setAttribute("d",d_attr);Z(bg,{x1:be,y1:bd,x2:be,y2:bd});a8(be,bd,(a3.length/2-1))}bv=true}return{keep:bv,element:bf}}if(ba!=-1){ba=-1;var bl=new aa("Edit Path");var bj={};bj.d=a7;a9();bl.addSubCommand(new Y(aZ,bj,"path points"));at(bl);Q("changed",[aZ]);if(bc()){a3[a3.length-2]=aT(0,true)[0];a3[a3.length-1]=aT(0,true)[1]}}else{if(a5!=-1){a5=-1;a9();var bl=new aa("Edit Path control points");bl.addSubCommand(new Y(aZ,{d:a7}));at(bl);Q("changed",[aZ])}else{aE="select";aV();aM.clearSelection();aM.addToSelection([bn.target])}}},toEditMode:function(bd){aZ=bd;aE="pathedit";var be=aM.getRotationAngle(bd);if(!be){aU()}aX();aM.clearSelection();n[0]=aM.getBBox(aZ);a2();bb(0)},select:function(bd){if(aZ==bd){o.toEditMode(aZ);aE="pathedit"}else{aZ=bd}},reorient:function(){var bf=aq[0];if(!bf){return}var bg=aM.getRotationAngle(bf);if(bg==0){return}var bd=new aa("Reorient path");var be={d:bf.getAttribute("d"),transform:bf.getAttribute("transform")};bd.addSubCommand(new Y(bf,be));aM.clearSelection();this.resetOrientation(bf);at(bd);aZ=bf;aU("");aR();this.clear();aM.addToSelection([bf],true);Q("changed",aq)},clear:function(bd){if(bd&&aE=="path"){var be=b(p());if(be){be.parentNode.removeChild(be)}}aV();a3=[];a4=-1;aZ=null},resetOrientation:function(bn){if(bn==null||bn.nodeName!="path"){return false}var bj=aM.getTransformList(bn);var be=l(bj).matrix;bj.clear();bn.removeAttribute("transform");var bf=bn.pathSegList;try{var bk=bf.numberOfItems}catch(bg){var bd=o.convertPath(bn);bn.setAttribute("d",bd);bf=bn.pathSegList;var bk=bf.numberOfItems}for(var bi=0;bi0){var bd=b(p());bd.parentNode.removeChild(bd);this.clear();aM.clearSelection();ah=false}else{if(aE=="pathedit"){this.clear()}}},getNodePoint:function(){if(a4!=-1){var bf=aT(a4);var be=aZ.pathSegList;var bd;if(be.numberOfItems>a4+1){bd=be.getItem(a4+1).pathSegType}else{bd=false}return{x:bf[0],y:bf[1],type:bd}}else{return false}},linkControlPoints:function(bd){aW=bd},clonePathNode:function(){var br=a4,bl=aZ.pathSegList;var bq=bl.getItem(br+1);if(bq.pathSegType%2==0){var bi=bl.getItem(br);var bo=(bq.x+bi.x)/2;var bm=(bq.y+bi.y)/2}else{var bo=bq.x/2;var bm=bq.y/2}var bg=aZ.createSVGPathSegLinetoAbs(bo,bm);if(aC.pathInsertItemBefore){bl.insertItemBefore(bg,br+1)}else{var be=aZ.pathSegList;var bk=be.numberOfItems;var bj=[];for(var bh=0;bh=bs&&by){bh=0}}var bn=bh+1;var bk=aT(bh)[0];var bi=aT(bh)[1];var br=aT(bn)[0];var bq=aT(bn)[1];if(!bj){var bp=new aa("Toggle Path Segment Type");var bo=aZ.pathSegList.getItem(bh+1).pathSegType;bj=(bo==6)?4:6}else{bj-=0;var bp=new aa("Change Path Segment Type")}var bt;var bg=aZ.getBBox();switch(bj){case 6:var bm=br-bk;var bl=bq-bi;var bf=bk+(bl/2);var be=bi-(bm/2);var bw=br+(bl/2);var bv=bq-(bm/2);bt=[br,bq,bf,be,bw,bv];break;case 4:bt=[br,bq];aQ(bh);break}aS(bj,bn,bt);if(ad&&aZ){var bx=o.convertPath(aZ);aZ.setAttribute("d",bx)}a2();a6(true);a9();bp.addSubCommand(new Y(aZ,{d:bd}));at(bp);Q("changed",[aZ])},moveNode:function(bd,bg){bg*=M;var bf=(bd=="x")?0:1;var be=$.map(a3,function(bh){return bh/M});a3[a4*2+bf]=bg-0;ba=a4;a1(a3[a4*2],a3[a4*2+1],be)},convertPath:function(bl,bk){var bd=bl.pathSegList;var bp=bd.numberOfItems;var bn=0,bm=0;var bt="";for(var bo=0;bo0){var aU=1;while($.inArray(("Layer "+aU),aY)!=-1){aU++}var aS="Layer "+aU;I=am.createElementNS(ak,"g");var aV=am.createElementNS(ak,"title");aV.textContent=aS;I.appendChild(aV);for(var aT=0;aT1){var aP=new aa("Delete Layer");var aQ=I.parentNode;aP.addSubCommand(new D(I,aQ));aQ.removeChild(I);at(aP);aM.clearSelection();K();aM.setCurrentLayer(ar[ar.length-1][0]);Q("changed",[S]);return true}return false};this.getNumLayers=function(){return ar.length};this.getLayer=function(aP){if(aP>=0&&aP=0&&aRaP){if(aR1){return}for(var aQ=0;aQ0){if(!aQ){this.changeSelectedAttribute("fill",aT,aP)}else{this.changeSelectedAttributeNoUndo("fill",aT,aP)}}};var ae=function(){var aP=S.getElementsByTagNameNS(ak,"defs");if(aP.length>0){aP=aP[0]}else{aP=S.insertBefore(am.createElementNS(ak,"defs"),S.firstChild.nextSibling)}return aP};var r=function(){$.each(["stroke","fill"],function(aR,aS){if(!k[aS+"_paint"]||k[aS+"_paint"].type=="solidColor"){return}var aV=aM[aS+"Grad"];var aU=m(aV);var aP=ae();if(!aU){var aT=aV;aV=aP.appendChild(am.importNode(aV,true));aM.fixOperaXML(aV,aT);aV.id=aJ()}else{aV=aU}var aQ=aS=="fill"?"Fill":"Stroke";aM["set"+aQ+"Color"]("url(#"+aV.id+")")})};var m=function(aU){var aR=ae();var aV=aR.getElementsByTagNameNS(ak,"linearGradient");var aS=aV.length;while(aS--){var aW=aV.item(aS);if(aU.getAttribute("x1")!=aW.getAttribute("x1")||aU.getAttribute("y1")!=aW.getAttribute("y1")||aU.getAttribute("x2")!=aW.getAttribute("x2")||aU.getAttribute("y2")!=aW.getAttribute("y2")){continue}var aX=aU.getElementsByTagNameNS(ak,"stop");var aY=aW.getElementsByTagNameNS(ak,"stop");if(aX.length!=aY.length){continue}var aQ=aX.length;while(aQ--){var aT=aX.item(aQ);var aP=aY.item(aQ);if(aT.getAttribute("offset")!=aP.getAttribute("offset")||aT.getAttribute("stop-opacity")!=aP.getAttribute("stop-opacity")||aT.getAttribute("stop-color")!=aP.getAttribute("stop-color")){break}}if(aQ==-1){return aW}}return null};this.setStrokePaint=function(aQ,aP){var aQ=new $.jGraduate.Paint(aQ);this.setStrokeOpacity(aQ.alpha/100);k.stroke_paint=aQ;if(aQ.type=="solidColor"){this.setStrokeColor("#"+aQ.solidColor)}else{if(aQ.type=="linearGradient"){aM.strokeGrad=aQ.linearGradient;if(aP){r()}}else{}}};this.setFillPaint=function(aQ,aP){var aQ=new $.jGraduate.Paint(aQ);this.setFillOpacity(aQ.alpha/100,true);k.fill_paint=aQ;if(aQ.type=="solidColor"){this.setFillColor("#"+aQ.solidColor)}else{if(aQ.type=="linearGradient"){aM.fillGrad=aQ.linearGradient;if(aP){r()}}else{}}};this.getStrokeWidth=function(){return k.stroke_width};this.setStrokeWidth=function(aP){if(aP==0&&$.inArray(aE,["line","path"])!=-1){aM.setStrokeWidth(1);return}k.stroke_width=aP;this.changeSelectedAttribute("stroke-width",aP)};this.getStrokeStyle=function(){return an.stroke_style};this.setStrokeStyle=function(aP){an.stroke_style=aP;this.changeSelectedAttribute("stroke-dasharray",aP)};this.getOpacity=function(){return an.opacity};this.setOpacity=function(aP){an.opacity=aP;this.changeSelectedAttribute("opacity",aP)};this.getFillOpacity=function(){return an.fill_opacity};this.setFillOpacity=function(aQ,aP){an.fill_opacity=aQ;if(!aP){this.changeSelectedAttribute("fill-opacity",aQ)}else{this.changeSelectedAttributeNoUndo("fill-opacity",aQ)}};this.getStrokeOpacity=function(){return an.stroke_opacity};this.setStrokeOpacity=function(aQ,aP){an.stroke_opacity=aQ;if(!aP){this.changeSelectedAttribute("stroke-opacity",aQ)}else{this.changeSelectedAttributeNoUndo("stroke-opacity",aQ)}};this.getTransformList=function(aQ){if(ad||!aC.goodDecimals){var aR=aQ.id;if(!aR){aR="temp"}var aP=G[aR];if(!aP||aR=="temp"){G[aR]=new w(aQ);G[aR]._init();aP=G[aR]}return aP}else{if(aQ.transform){return aQ.transform.baseVal}}return null};this.getBBox=function(aT){var aS=aT||aq[0];if(aT.nodeType!=1){return null}var aP=null;if(aT.nodeName=="text"&&aS.textContent==""){aS.textContent="a";aP=aS.getBBox();aS.textContent=""}else{if(aT.nodeName=="g"&&h){aP=aS.getBBox();var aR=document.createElementNS(ak,"g");while(aS.firstChild){aR.appendChild(aS.firstChild)}var aQ=aS.attributes.length;while(aQ--){aR.setAttributeNode(aS.attributes.item(aQ).cloneNode(true))}aS.parentNode.appendChild(aR);aP=aR.getBBox();while(aR.firstChild){aS.appendChild(aR.firstChild)}aS.parentNode.removeChild(aR)}else{if(aT.nodeName=="path"&&ad){aP=aL(aS)}else{try{aP=aS.getBBox()}catch(aU){aP=null}}}}return aP};this.getRotationAngle=function(aT,aQ){var aS=aT||aq[0];var aV=aM.getTransformList(aS);if(!aV){return 0}var aU=aV.numberOfItems;for(var aR=0;aR0){var a1=aY.getItem(0);if(a1.type==4){aY.removeItem(0)}}if(aR!=0){var aP=C(aV,aU,l(aY).matrix);var a0=v.createSVGTransform();a0.setRotate(aR,aP.x,aP.y);aY.insertItemBefore(a0,0)}else{if(aY.numberOfItems==0){aS.removeAttribute("transform")}}if(!aZ){var aQ=aS.getAttribute("transform");aS.setAttribute("transform",aW);this.changeSelectedAttribute("transform",aQ,aq)}var aX=b("pathpointgrip_container");if(aS.nodeName=="path"&&aX){o.setPointContainerTransform(aS.getAttribute("transform"))}var aT=t.requestSelector(aq[0]);aT.resize();aT.updateGripCursors(aR)};this.each=function(aP){$(v).children().each(aP)};this.bind=function(aQ,aR){var aP=s[aQ];s[aQ]=aR;return aP};this.setIdPrefix=function(aP){av=aP};this.getBold=function(){var aP=aq[0];if(aP!=null&&aP.tagName=="text"&&aq[1]==null){return(aP.getAttribute("font-weight")=="bold")}return false};this.setBold=function(aP){var aQ=aq[0];if(aQ!=null&&aQ.tagName=="text"&&aq[1]==null){this.changeSelectedAttribute("font-weight",aP?"bold":"normal")}};this.getItalic=function(){var aP=aq[0];if(aP!=null&&aP.tagName=="text"&&aq[1]==null){return(aP.getAttribute("font-style")=="italic")}return false};this.setItalic=function(aP){var aQ=aq[0];if(aQ!=null&&aQ.tagName=="text"&&aq[1]==null){this.changeSelectedAttribute("font-style",aP?"italic":"normal")}};this.getFontFamily=function(){return aI.font_family};this.setFontFamily=function(aP){aI.font_family=aP;this.changeSelectedAttribute("font-family",aP)};this.getFontSize=function(){return aI.font_size};this.setFontSize=function(aP){aI.font_size=aP;this.changeSelectedAttribute("font-size",aP)};this.getText=function(){var aP=aq[0];if(aP==null){return""}return aP.textContent};this.setTextContent=function(aP){this.changeSelectedAttribute("#text",aP)};this.setImageURL=function(aP){svgCanvas.changeSelectedAttribute("#href",aP)};this.setRectRadius=function(aR){var aP=aq[0];if(aP!=null&&aP.tagName=="rect"){var aQ=aP.getAttribute("rx");if(aQ!=aR){aP.setAttribute("rx",aR);aP.setAttribute("ry",aR);at(new Y(aP,{rx:aQ,ry:aQ},"Radius"));Q("changed",[aP])}}};this.setSegType=function(aP){o.setSegType(aP)};var e=function(aP){if(navigator.userAgent.indexOf("Gecko/")==-1){return aP}var aQ=aP.cloneNode(true);aP.parentNode.insertBefore(aQ,aP);aP.parentNode.removeChild(aP);t.releaseSelector(aP);aq[0]=aQ;t.requestSelector(aQ).showGrips(true);return aQ};var au=-1;var aD=[];this.beginUndoableChange=function(aS,aQ){var aV=++au;var aR=aQ.length;var aP=new Array(aR),aU=new Array(aR);while(aR--){var aT=aQ[aR];if(aT==null){continue}aU[aR]=aT;aP[aR]=aT.getAttribute(aS)}aD[aV]={attrName:aS,oldValues:aP,elements:aU}};this.changeSelectedAttributeNoUndo=function(a0,aY,a8){var a5=v.suspendRedraw(1000);if(aE=="pathedit"){o.moveNode(a0,aY)}var a8=a8||aq;var a2=a8.length;while(a2--){var a4=a8[a2];if(a4==null){continue}if((a0=="x"||a0=="y")&&$.inArray(a4.tagName,["g","polyline","path"])!=-1){var aP=aM.getStrokedBBox([a4]);var aV=a0=="x"?aY-aP.x:0;var aU=a0=="y"?aY-aP.y:0;aM.moveSelectedElements(aV*M,aU*M,true);continue}if(a4.tagName=="g"&&(a0!="transform"&&a0!="opacity")){continue}var aT=a0=="#text"?a4.textContent:a4.getAttribute(a0);if(aT==null){aT=""}if(aT!=String(aY)){if(a0=="#text"){var a1=aM.getBBox(a4).width;a4.textContent=aY;a4=e(a4)}else{if(a0=="#href"){a4.setAttributeNS(af,"href",aY)}else{a4.setAttribute(a0,aY)}}if(a2==0){n[a2]=this.getBBox(a4)}if(a4.nodeName=="text"){if((aY+"").indexOf("url")==0||$.inArray(a0,["font-size","font-family","x","y"])!=-1){a4=e(a4)}}setTimeout(function(){t.requestSelector(a4).resize()},0);var a3=aM.getRotationAngle(a4);if(a3!=0&&a0!="transform"){var aW=aM.getTransformList(a4);var aZ=aW.numberOfItems;while(aZ--){var aR=aW.getItem(aZ);if(aR.type==4){aW.removeItem(aZ);var aX=aM.getBBox(a4);var a7=C(aX.x+aX.width/2,aX.y+aX.height/2,l(aW).matrix);var aS=a7.x,aQ=a7.y;var a6=v.createSVGTransform();a6.setRotate(a3,aS,aQ);aW.insertItemBefore(a6,aZ);break}}}}}v.unsuspendRedraw(a5)};this.finishUndoableChange=function(){var aU=au--;var aV=aD[aU];var aR=aV.elements.length;var aQ=aV.attrName;var aP=new aa("Change "+aQ);while(aR--){var aT=aV.elements[aR];if(aT==null){continue}var aS={};aS[aQ]=aV.oldValues[aR];if(aS[aQ]!=aT.getAttribute(aQ)){aP.addSubCommand(new Y(aT,aS,aQ))}}aD[aU]=null;return aP};this.changeSelectedAttribute=function(aP,aT,aR){var aR=aR||aq;aM.beginUndoableChange(aP,aR);var aS=aR.length;aM.changeSelectedAttributeNoUndo(aP,aT,aR);var aQ=aM.finishUndoableChange();if(!aQ.isEmpty()){at(aQ)}};this.deleteSelectedElements=function(){var aR=new aa("Delete Elements");var aQ=aq.length;var aP=[];for(var aT=0;aT=aT.length){aP=0}else{if(aP<0){aP=aT.length-1}}aS=aT[aP];break}}}aM.clearSelection();aM.addToSelection([aS],true);Q("selected",aq)};var aj=function(){F=[];ao=0};this.getUndoStackSize=function(){return ao};this.getRedoStackSize=function(){return F.length-ao};this.getNextUndoCommandText=function(){if(ao>0){return F[ao-1].text}return""};this.getNextRedoCommandText=function(){if(ao0){this.clearSelection();o.clear();var aP=F[--ao];aP.unapply();Q("changed",aP.elements())}};this.redo=function(){if(ao0){this.clearSelection();var aP=F[ao++];aP.apply();Q("changed",aP.elements())}};var V=function(aQ){var aR=document.createElementNS(ak,aQ.nodeName);$.each(aQ.attributes,function(aT,aS){var aU=aS.nodeName=="href"?af:aS.prefix=="xml"?J:null;aR.setAttributeNS(aU,aS.nodeName,aS.nodeValue)});aR.removeAttribute("id");aR.id=aJ();aG++;if(!aC.goodDecimals&&aQ.nodeName=="path"){var aP=o.convertPath(aQ);aR.setAttribute("d",aP)}$.each(aQ.childNodes,function(aS,aT){switch(aT.nodeType){case 1:aR.appendChild(V(aT));break;case 3:aR.textContent=aT.nodeValue;break;default:break}});if(aR.tagName=="image"){ax(aR)}return aR};var ax=function(aP){$(aP).click(function(aQ){aQ.preventDefault()})};this.cloneSelectedElements=function(){var aQ=new aa("Clone Elements");var aP=aq.length;for(var aR=0;aRaS[aQ].width)||(aX=="t"||aX=="m"||aX=="b")&&(aT==Number.MIN_VALUE||aT>aS[aQ].height)){a1=aS[aQ].x;aZ=aS[aQ].y;aW=aS[aQ].x+aS[aQ].width;aU=aS[aQ].y+aS[aQ].height;aY=aS[aQ].width;aT=aS[aQ].height}break;case"largest":if((aX=="l"||aX=="c"||aX=="r")&&(aY==Number.MIN_VALUE||aYaW){aW=aS[aQ].x+aS[aQ].width}if(aS[aQ].y+aS[aQ].height>aU){aU=aS[aQ].y+aS[aQ].height}break}}if(a3=="page"){a1=0;aZ=0;aW=v.getAttribute("width");aU=v.getAttribute("height")}var a4=new Array(aR);var a2=new Array(aR);for(var aQ=0;aQ>2;h=((l&3)<<4)|(j>>4);f=((j&15)<<2)|(g>>6);e=g&63;if(isNaN(j)){f=e=64}else{if(isNaN(g)){e=64}}b[a++]=this._keyStr.charAt(k);b[a++]=this._keyStr.charAt(h);b[a++]=this._keyStr.charAt(f);b[a++]=this._keyStr.charAt(e)}while(c>4);h=((g&15)<<4)|(e>>2);f=((e&3)<<6)|d;a=a+String.fromCharCode(k);if(e!=64){a=a+String.fromCharCode(h)}if(d!=64){a=a+String.fromCharCode(f)}k=h=f="";j=g=e=d=""}while(b127){if(d<2048){a+=String.fromCharCode((d>>6)|192)}else{a+=String.fromCharCode((d>>12)|224)+String.fromCharCode((d>>6)&63|128)}a+=String.fromCharCode((d&63)|128)}}}return a},convertToXMLReferences:function(b){var a="";for(var e=0;e127){a+=(""+d+";")}}}return a},rectsIntersect:function(b,a){return a.x<(b.x+b.width)&&(a.x+a.width)>b.x&&a.y<(b.y+b.height)&&(a.y+a.height)>b.y},text2xml:function(b){var a;try{var d=($.browser.msie)?new ActiveXObject("Microsoft.XMLDOM"):new DOMParser();d.async=false}catch(c){throw new Error("XML Parser could not be instantiated")}try{if($.browser.msie){a=(d.loadXML(b))?d:false}else{a=d.parseFromString(b,"text/xml")}}catch(c){throw new Error("Error parsing XML string")}return a}};