",{id:ea.panel}).appendTo("#tools_top")}var Qa=
+a(ea.list||ea.type=="app_menu"?"
").attr("id",Ma).attr("title",ea.title).addClass(ra);if(!ea.includeWith&&!ea.list){if("position"in ea)a(Za).children().eq(ea.position).before(Qa);else ea.type!="menu"||!ea.after?Qa.appendTo(Za):a(Za).after(Qa);if(ea.type=="mode_flyout"){sa=a(Qa);ra=sa.parent();if(!sa.parent().hasClass("tools_flyout")){var Oa=sa[0].id.replace("tool_","tools_"),lb=sa.clone().attr("id",Oa+"_show").append(a("
",{"class":"flyout_arrow_horiz"}));sa.before(lb);ra=qa(Oa,sa);
+ra.data("isLibrary",true);lb.data("isLibrary",true)}T["#"+Oa+"_show"]=ea.id;Ma=ha["#"+ra[0].id]=[{sel:"#"+Ma,fn:ea.events.click,icon:ea.id,isDefault:true},xb]}else if(ea.type=="app_menu"||ea.type=="menu")Qa.append(ea.title)}else if(ea.list){Qa.addClass("push_button");a("#"+ea.list+"_opts").append(Qa);if(ea.isDefault){a("#cur_"+ea.list).append(Qa.children().clone());sa=ea.svgicon?ea.svgicon:ea.id;T["#cur_"+ea.list]=sa}}else if(ea.includeWith){Za=ea.includeWith;sa=a(Za.button);ra=sa.parent();if(!sa.parent().hasClass("tools_flyout")){Oa=
+sa[0].id.replace("tool_","tools_");lb=sa.clone().attr("id",Oa+"_show").append(a("
",{"class":"flyout_arrow_horiz"}));sa.before(lb);ra=qa(Oa,sa)}var xb=G.getButtonData(Za.button);if(Za.isDefault)T["#"+Oa+"_show"]=ea.id;Ma=ha["#"+ra[0].id]=[{sel:"#"+Ma,fn:ea.events.click,icon:ea.id,key:ea.key,isDefault:ea.includeWith?ea.includeWith.isDefault:0},xb];Oa="position"in Za?Za.position:"last";xb=ra.children().length;if(!isNaN(Oa)&&Oa>=0&&Oa
'});a("#palette").append(Da);var ya=a("#tool_angle_indicator");a("#tool_reorient");rotateCursor=function(g){g="rotate("+g+"deg)";ya.css({"-webkit-transform":g,"-moz-transform":g,"-o-transform":g,"-ms-transform":g,transform:g})};var Fa=function(g){var n=g.value/100;if(n<0.0010)g.value=0.1;else{g=h.getZoom();ca(window,{width:0,height:0,x:(H[0].scrollLeft+H.width()/2)/g,y:(H[0].scrollTop+H.height()/
+2)/g,zoom:n},true)}},wa=function(){window.opera&&a("
").hide().appendTo("body").remove()};a("#stroke_style").change(function(){h.setStrokeAttr("stroke-dasharray",a(this).val());a("#stroke_style_label").html(this.options[this.selectedIndex].text);wa()});a("#seg_type").change(function(){h.setSegType(a(this).val());a("#seg_type_label").html(this.options[this.selectedIndex].text)});a("select").change(function(){a(this).blur()});a("#font_family").change(function(){h.setFontFamily(this.value)});a("#text").keyup(function(){h.setTextContent(this.value)});
+changeAttribute=function(g){var n=g.getAttribute("data-attr"),s=g.getAttribute("data-multiplier")||1;s=parseFloat(s);s=g.value*s;if(!svgedit.units.isValidUnit(n,s,Q)){a.alert(uiStrings.notification.invalidAttrValGiven);g.value=Q.getAttribute(n);return false}h.changeSelectedAttributeNoUndo(n,s)};a("#palette").mouseover(function(){var g=a('
');a(this).append(g);g.focus().remove()});a(".palette_item").on("mousedown touchstart touchmove",function(){var g=a("#tool_stroke").hasClass("active"),
+n=g?"stroke":"fill",s=a(this).attr("data-rgb"),A=null;if(s==="transparent"||s==="initial"||s==="#none"){s="none";A=new a.jGraduate.Paint}else A=new a.jGraduate.Paint({alpha:100,solidColor:s.substr(1)});b.paintBox[n].setPaint(A);if(g){h.setColor("stroke",s);s!="none"&&h.getStrokeOpacity()!=1&&h.setPaintOpacity("stroke",1)}else{h.setColor("fill",s);s!="none"&&h.getFillOpacity()!=1&&h.setPaintOpacity("fill",1)}}).bind("contextmenu",function(g){g.preventDefault()});a("#toggle_stroke_tools").toggle(function(){a(".stroke_tool").css("display",
+"table-cell");a(this).addClass("expanded");k()},function(){a(".stroke_tool").css("display","none");a(this).removeClass("expanded");k()});var Ua=function(g,n){if(a(g).hasClass("disabled"))return false;if(a(g).parent().hasClass("tools_flyout"))return true;var s=s||"normal";n||a(".tools_flyout").fadeOut(s);a("#styleoverrides").text("");a(".tool_button_current").removeClass("tool_button_current").addClass("tool_button");a(g).addClass("tool_button_current").removeClass("tool_button");return true};(function(){var g=
+null,n=null,s=H[0],A=false,F=false;a("#svgcanvas").on("mousemove mouseup touchend",function(J){if(A!==false){s.scrollLeft-=J.clientX-g;s.scrollTop-=J.clientY-n;g=J.clientX;n=J.clientY;if(J.type==="mouseup"||J.type==="touchend")A=false;return false}}).on("mousedown touchmove",function(J){if(J.button===1||F===true||J.originalEvent.touches&&J.originalEvent.touches.length>=2){A=true;g=J.clientX;n=J.clientY;return false}});a(window).mouseup(function(){A=false});a(document).bind("keydown","space",function(J){J.preventDefault();
+h.spaceKey=F=true}).bind("keyup","space",function(J){J.preventDefault();h.spaceKey=F=false}).bind("keydown","alt",function(){h.getMode()==="zoom"&&H.addClass("out")}).bind("keyup","alt",function(){h.getMode()==="zoom"&&H.removeClass("out")})})();var tb=a(".menu"),eb=function(g){g.target.style.background="#fff";setTimeout(function(){g.target.style.background="#ddd"},50);setTimeout(function(){g.target.style.background="#fff"},150);setTimeout(function(){g.target.style.background="#ddd"},200);setTimeout(function(){g.target.style.background=
+""},200);setTimeout(function(){a("#menu_bar").removeClass("active")},220);return false};a(".menu_item").on("mousedown touchstart",function(g){eb(g)});a("svg, body").on("mousedown touchstart",function(g){if(g.target.nodeName.toLowerCase()!=="input")if(!a(g.target).hasClass("menu_title")&&!a(g.target).parent().hasClass("menu_title"))!a(g.target).hasClass("disabled")&&a(g.target).hasClass("menu_item")?eb(g):a("#menu_bar").removeClass("active")});a("#workarea").on("mousewheel",function(g,n,s,A){if(g.altKey){g.preventDefault();
+zoom=parseInt(a("#zoom").val());a("#zoom").val(parseInt(zoom+A*10)).change()}});a(".menu_title").on("mousedown",function(){a("#tools_shapelib").hide();a("#menu_bar").toggleClass("active");tb.removeClass("open");a(this).parent().addClass("open")}).on("mouseover",function(){tb.removeClass("open");a(this).parent().addClass("open")});b.addDropDown=function(g,n,s){if(a(g).length!=0){var A=a(g).find("button"),F=a(g).find("ul").attr("id",a(g)[0].id+"-list");s||a("#option_lists").append(F);var J=false;s&&
+a(g).addClass("dropup");F.find("li").bind("mouseup",n);a(window).mouseup(function(){if(!J){A.removeClass("down");F.hide()}J=false});A.bind("mousedown",function(){if(A.hasClass("down")){A.removeClass("down");F.hide()}else{A.addClass("down");if(!s){var L=a(g).offset();F.css({top:L.top,left:L.left-110})}F.show();J=true}}).hover(function(){J=true}).mouseout(function(){J=false})}};var Va=function(g,n,s,A){var F=a(g);n=a(n);var J=false,L=A.dropUp;L&&a(g).addClass("dropup");n.find("li").bind("mouseup",function(){if(A.seticon){Ib("#cur_"+
+F[0].id,a(this).children());a(this).addClass("current").siblings().removeClass("current")}s.apply(this,arguments)});a(window).mouseup(function(){if(!J){F.removeClass("down");n.hide();n.css({top:0,left:0})}J=false});n.height();a(g).bind("mousedown",function(){var Z=a(g).offset();if(L){Z.top-=n.height();Z.left+=8}else Z.top+=a(g).height();a(n).offset(Z);if(F.hasClass("down")){F.removeClass("down");n.hide();n.css({top:0,left:0})}else{F.addClass("down");n.show();J=true;return false}}).hover(function(){J=
+true}).mouseout(function(){J=false});A.multiclick&&n.mousedown(function(){J=true})};a("#font_family_dropdown").change(function(){var g=this.options[this.selectedIndex].value,n=this.options[this.selectedIndex].text;a("#preview_font").html(n).css("font-family",g);a("#font_family").val(g).change()});a("div","#position_opts").each(function(){this.addEventListener("mouseup",function(){var g=this.id.replace("tool_pos","").charAt(0);h.alignSelectedElements(g,"page")})});(function(){var g,n=function(){a(g).blur()};
+a("#svg_editor").find("button, select, input:not(#text)").focus(function(){g=this;ga="toolbars";H.mousedown(n)}).blur(function(){ga="canvas";H.unbind("mousedown",n);h.getMode()=="textedit"&&a("#text").focus()})})();var Wa=function(){Ua("#tool_select")&&h.setMode("select")},Ba=function(){Ua("#tool_fhpath")&&h.setMode("fhpath")},va=function(){Ua("#tool_line")&&h.setMode("line")},cb=function(){Ua("#tool_rect")&&h.setMode("rect")},Ka=function(){Ua("#tool_ellipse")&&h.setMode("ellipse")},Ta=function(){Ua("#tool_image")&&
+h.setMode("image")},Ca=function(){Ua("#tool_zoom")&&h.setMode("zoom")},gb=function(){if(Ua("#tool_zoom")){yb();fa()}},pb=function(){Ua("#tool_text")&&h.setMode("text")},Xa=function(){Ua("#tool_path")&&h.setMode("path")},Ya=function(){if(Q!=null||Y)h.deleteSelectedElements()},ub=function(){if(Q!=null||Y){window.event.type==="keydown"&&$a(a("#edit_menu"));h.cutSelectedElements()}},ta=function(){if(Q!=null||Y){window.event.type==="keydown"&&$a(a("#edit_menu"));h.copySelectedElements()}},jb=function(){window.event.type===
+"keydown"&&$a(a("#edit_menu"));var g=h.getZoom(),n=(H[0].scrollLeft+H.width()/2)/g-h.contentW;g=(H[0].scrollTop+H.height()/2)/g-h.contentH;h.pasteElements("point",n,g)},fb=function(){if(Q!=null){window.event.type==="keydown"&&$a(a("#object_menu"));h.moveToTopSelectedElement()}},sb=function(){if(Q!=null){window.event.type==="keydown"&&$a(a("#object_menu"));h.moveToBottomSelectedElement()}},kb=function(){if(Q!=null){window.event.type==="keydown"&&$a(a("#object_menu"));h.moveUpDownSelected("Up")}},db=
+function(){if(Q!=null){window.event.type==="keydown"&&$a(a("#object_menu"));h.moveUpDownSelected("Down")}},mb=function(g){if(Q!=null){window.event.type==="keydown"&&$a(a("#object_menu"));h.moveUpDownSelected(g)}},qb=function(){if(Q!=null){h.convertToPath();elems=h.getSelectedElems();h.selectorManager.requestSelector(elems[0]).reset(elems[0]);h.selectorManager.requestSelector(elems[0]).selectorRect.setAttribute("display","none");h.setMode("pathedit");q.toEditMode(elems[0]);h.clearSelection();Ia()}},
+vb=function(){Q!=null&&q.reorient()},wb=function(){if(Q!=null||Y)a.prompt(uiStrings.notification.enterNewLinkURL,"http://",function(g){g&&h.makeHyperlink(g)})},ia=function(g,n){if(Q!=null||Y){if(curConfig.gridSnapping){var s=h.getZoom()*curConfig.snappingStep;g*=s;n*=s}a("input").blur();h.moveSelectedElements(g,n)}},aa=function(){var g=!a("#tool_node_link").hasClass("checked");g?a("#tool_node_link").addClass("checked").find("input").attr("checked",true):a("#tool_node_link").removeClass("checked").find("input").attr("checked",
+false);q.linkControlPoints(g)},ka=function(){q.getNodePoint()&&q.clonePathNode()},M=function(){q.getNodePoint()&&q.deletePathNode()},P=function(){var g=a("#tool_add_subpath"),n=!g.hasClass("push_button_pressed");n?g.addClass("push_button_pressed").removeClass("tool_button"):g.removeClass("push_button_pressed").addClass("tool_button");q.addSubPath(n)},da=function(){q.opencloseSubPath()},Ea=function(){h.cycleElement(1)},Na=function(){h.cycleElement(0)},Ra=function(g,n){if(!(Q==null||Y)){g||(n*=-1);
+var s=a("#angle").val()*1+n;h.setRotationAngle(s);Ia()}},bb=function(){var g=curConfig.dimensions;a.confirm(uiStrings.notification.QwantToClear,function(n){if(n){fa();h.clear();h.setResolution(g[0],g[1]);D(true);yb();Ia();V();h.runExtensions("onNewDocument")}})},ob=function(){h.setBold(!h.getBold());Ia()},Sa=function(){h.setItalic(!h.getItalic());Ia()},nb=function(){if(!c.pngsave){var g=uiStrings.notification.loadingImage;U=window.open("data:text/html;charset=utf-8,
"+g+""+g+"
")}window.canvg?
+h.rasterExport():a.getScript("canvg/rgbcolor.js",function(){a.getScript("canvg/canvg.js",function(){h.rasterExport()})})},Pa=function(){h.open()},rb=function(){},$a=function(g){var n=g.prev();n.css("background","#09f");setTimeout(function(){n.css("background","")},200)},Eb=function(){if(K.getUndoStackSize()>0){window.event.type==="keydown"&&$a(a("#edit_menu"));K.undo()}},Db=function(){if(K.getRedoStackSize()>0){window.event.type==="keydown"&&$a(a("#edit_menu"));K.redo()}},ab=function(){if(Y)h.groupSelectedElements();
+else Q&&h.ungroupSelectedElement()},La=function(){window.event.type==="keydown"&&$a(a("#edit_menu"));h.cloneSelectedElements(20,20)},Nb=function(){var g=this.id.replace("tool_align","").charAt(0);h.alignSelectedElements(g,a("#align_relative_to").val())},Kb=function(){var g=document.querySelector("#tool_stroke rect"),n=document.querySelector("#tool_fill rect"),s=n.getAttribute("fill"),A=g.getAttribute("fill");g=parseFloat(g.getAttribute("stroke-opacity"));if(isNaN(g))g=100;n=parseFloat(n.getAttribute("fill-opacity"));
+if(isNaN(n))n=100;A=Ga(A,g,"stroke");s=Ga(s,n,"fill");b.paintBox.fill.setPaint(A,true);b.paintBox.stroke.setPaint(s,true)},yb=function(g){var n=h.getResolution();g=g?n.zoom*g:1;a("#zoom").val(g*100);h.setZoom(g);Jb();D(true)},Lb=function(){!a("#tool_wireframe").hasClass("push_button_pressed")?a("#tool_wireframe").addClass("push_button_pressed"):a("#tool_wireframe").removeClass("push_button_pressed");H.toggleClass("wireframe");if(!C){var g=a("#wireframe_rules");g.length?g.empty():a('').appendTo("head");
+Jb()}},Ob=function(){var g=!a("#tool_snap").hasClass("push_button_pressed");g?a("#tool_snap").addClass("push_button_pressed"):a("#tool_snap").removeClass("push_button_pressed");curConfig.gridSnapping=g},Ab=function(){window.self!=window.top&&top.exit_fullscreen()},Gb=function(){if(a("#tool_rulers").hasClass("push_button_pressed")){a("#tool_rulers").removeClass("push_button_pressed");a("#show_rulers").attr("checked",false);curConfig.showRulers=false}else{a("#tool_rulers").addClass("push_button_pressed");
+a("#show_rulers").attr("checked",true);curConfig.showRulers=true}a("#rulers").toggle(!!curConfig.showRulers)},Jb=function(){if(!C){var g="#workarea.wireframe #svgcontent * { stroke-width: "+1/h.getZoom()+"px; }";a("#wireframe_rules").text(H.hasClass("wireframe")?g:"")}},zb=function(g,n){if(!xa){xa=true;a("#save_output_btns").toggle(!!n);a("#tool_source_back").toggle(!n);var s=pa=h.getSvgString();a("#svg_source_textarea").val(s);a("#svg_source_editor").fadeIn();a("#svg_source_textarea").focus().select()}},
+ib=function(){if(xa){if(h.setSvgString(a("#svg_source_textarea").val())){h.clearSelection();e();yb();V()}else a.confirm(uiStrings.notification.QerrorsRevertToSource,function(g){if(!g)return false;h.clearSelection();e();yb();V()});fa()}},Ib=b.setIcon=function(g,n){var s=typeof n==="string"?a.getSvgIcon(n,true):n.clone();s?a(g).find("img").replaceWith(s):console.log("NOTE: Icon image missing: "+n)},Hb;Hb=function(){var g=/^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,n=document.getElementsByTagName("script")[0],
+s;for(s in n.style)if(g.test(s))return s.match(g)[0];if("WebkitOpacity"in n.style)return"Webkit";if("KhtmlOpacity"in n.style)return"Khtml";return""}();var Bb=function(g,n){Hb.toLowerCase();var s=["top","left","bottom","right"];g.each(function(){for(var A=a(this),F=A.outerWidth()*(n-1),J=A.outerHeight()*(n-1),L=0;L<4;L++){var Z=s[L],ba=A.data("orig_margin-"+Z);if(ba==null){ba=parseInt(A.css("margin-"+Z));A.data("orig_margin-"+Z,ba)}ba=ba*n;if(Z==="right")ba+=F;else if(Z==="bottom")ba+=J;A.css("margin-"+
+Z,ba)}})},hb=b.setIconSize=function(g,n){if(!(g==u.size&&!n)){var s=a("#tools_top .toolset, #editor_panel > *, #history_panel > *,\t\t\t\t#main_button, #tools_left > *, #path_node_panel > *, #multiselected_panel > *,\t\t\t\t#g_panel > *, #tool_font_size > *, .tools_flyout"),A=1;A=typeof g=="number"?g:{s:0.75,m:1,l:1.25,xl:1.5}[g];b.tool_scale=N=A;ma();var F=s.parents(":hidden");F.css("visibility","hidden").show();Bb(s,A);F.css("visibility","visible").hide();s=a("#tool_size_rules");if(s.length)s.empty();
+else s=a('').appendTo("head");if(g!="m"){var J="";a.each(cssResizeRules,function(L,Z){L="#svg_editor "+L.replace(/,/g,", #svg_editor");J+=L+"{";a.each(Z,function(ba,T){if(typeof T==="number")var X=T*A+"px";else if(T[g]||T.all)X=T[g]||T.all;J+=ba+":"+X+";"});J+="}"});F="-"+Hb.toLowerCase()+"-";J+="#tools_top .toolset, #editor_panel > *, #history_panel > *,\t\t\t\t#main_button, #tools_left > *, #path_node_panel > *, #multiselected_panel > *,\t\t\t\t#g_panel > *, #tool_font_size > *, .tools_flyout{"+
+F+"transform: scale("+A+");} #svg_editor div.toolset .toolset {"+F+"transform: scale(1); margin: 1px !important;} #svg_editor .ui-slider {"+F+"transform: scale("+1/A+");}";s.text(J)}ma()}},Fb=function(){a("#dialog_box").hide();if(xa){if(xa)pa!==a("#svg_source_textarea").val()?a.confirm(uiStrings.notification.QignoreSourceChanges,function(g){g&&e()}):e();k()}else ja&&h.leaveContext()},e=function(){a("#svg_source_editor").hide();xa=false;a("#svg_source_textarea").blur()};a(window).width();a(window).height();
+var k=a.noop;a(window).resize(function(){D()});(function(){H.scroll(function(){if(a("#ruler_x").length!=0)a("#ruler_x")[0].scrollLeft=H[0].scrollLeft;if(a("#ruler_y").length!=0)a("#ruler_y")[0].scrollTop=H[0].scrollTop})})();a("#url_notice").click(function(){a.alert(this.title)});a("#change_image_url").click(function(){var g=h.getHref(Q);g=g.indexOf("data:")===0?"":g;a.prompt(uiStrings.notification.enterNewImgURL,g,function(n){n&&Ja(n)})});var m=function(g){var n=g[0].id=="stroke_color"?"stroke":
+"fill",s=g[0].id=="canvas_color";if(s)n="canvas";var A=b.paintBox[n].paint;g=n=="stroke"?"Pick a Stroke Paint and Opacity":"Pick a Fill Paint and Opacity";s=s?{right:175,top:50}:{left:50,bottom:50};a("#color_picker").draggable({cancel:".jGraduate_tabs, .jGraduate_colPick, .jGraduate_gradPick, .jPicker",containment:"window"}).removeAttr("style").css(s).jGraduate({paint:A,window:{pickerTitle:g},images:{clientPath:curConfig.jGraduatePath},newstop:"inverse"},function(F){A=new a.jGraduate.Paint(F);b.paintBox[n].setPaint(A);
+h.setPaint(n,A);a("#color_picker").hide()},function(){a("#color_picker").hide()})};l=function(g,n){var s=document.getElementById("canvas_background"),A={color:"fff",opacity:1};if(n=="stroke")A=curConfig.initStroke;if(n=="fill")A=curConfig.initFill;if(n=="canvas"&&s)if(s=s.getAttribute("fill").match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))A={color:("0"+parseInt(s[1],10).toString(16)).slice(-2)+("0"+parseInt(s[2],10).toString(16)).slice(-2)+("0"+parseInt(s[3],10).toString(16)).slice(-2),opacity:1};s=(new DOMParser).parseFromString('
',"text/xml").documentElement;s=a(g)[0].appendChild(document.importNode(s,true));n==="canvas"?s.setAttribute("width",60.5):s.setAttribute("width","100%");this.rect=s.firstChild;this.defs=s.getElementsByTagName("defs")[0];this.grad=this.defs.firstChild;this.paint=new a.jGraduate.Paint({solidColor:A.color});this.type=n;this.setPaint=function(F,J){this.paint=F;var L="none",Z=F.type,ba=F.alpha/100;switch(Z){case "solidColor":L=
+F[Z]=="none"||F[Z]=="one"?"none":"#"+F[Z];break;case "linearGradient":case "radialGradient":this.defs.removeChild(this.grad);this.grad=this.defs.appendChild(F[Z]);L="url(#"+(this.grad.id="gradbox_"+this.type)+")"}this.rect.setAttribute("fill",L);this.rect.setAttribute("opacity",ba);if(J){h.setColor(this.type,L,true);h.setPaintOpacity(this.type,ba,true)}if(this.type=="canvas")if(Z=document.getElementById("canvas_background")){Aa=h.getResolution();Z.setAttribute("x",-1);Z.setAttribute("y",-1);Z.setAttribute("width",
+Aa.w+2);Z.setAttribute("height",Aa.h+2);Z.setAttribute("fill",L)}else Ha(L)};this.update=function(F){if(Q){var J=this.type;switch(Q.tagName){case "use":case "image":case "foreignObject":return;case "g":case "a":for(var L=null,Z=Q.getElementsByTagName("*"),ba=0,T=Z.length;ba
=1){ba=h.getResolution();a("#canvas_width").val(ba.w.toFixed());a("#canvas_height").val(ba.h.toFixed());a("#resolution_label").html(""+ba.w+"\u00d7"+
+ba.h+"
")}else requestAnimationFrame(Z)};Z(Date.now())}else{a("#resolution_label").html("Custom");g.removeAttribute("readonly");g.focus();g.select();if(g.value=="fit"){g.value=100;n.value=100}}});a("#zoom").change(function(){Fa(this)});a("input,select").attr("autocomplete","off");var G=function(){var g=[{sel:"#tool_select",fn:Wa,evt:"click",key:["V",true]},{sel:"#tool_fhpath",fn:Ba,evt:"click",key:["Q",true]},{sel:"#tool_line",fn:va,evt:"click",key:["L",true]},{sel:"#tool_rect",fn:cb,evt:"click",
+key:["R",true],icon:"rect"},{sel:"#tool_ellipse",fn:Ka,evt:"mouseup",key:["C",true],icon:"ellipse"},{sel:"#tool_path",fn:Xa,evt:"click",key:["P",true]},{sel:"#tool_text",fn:pb,evt:"click",key:["T",true]},{sel:"#tool_image",fn:Ta,evt:"mouseup"},{sel:"#tool_zoom",fn:Ca,evt:"mouseup",key:["Z",true]},{sel:"#tool_clear",fn:bb,evt:"mouseup",key:[B+"N",true]},{sel:"#tool_save",fn:function(){xa?ib():h.save({images:u.img_save,round_digits:6})},evt:"mouseup",key:[B+"S",true]},{sel:"#tool_export",fn:nb,evt:"mouseup"},
+{sel:"#tool_open",fn:Pa,evt:"mouseup"},{sel:"#tool_import",fn:rb,evt:"mouseup"},{sel:"#tool_source",fn:zb,evt:"click",key:[B+"U",true]},{sel:"#tool_wireframe",fn:Lb,evt:"click"},{sel:"#tool_snap",fn:Ob,evt:"click"},{sel:"#tool_rulers",fn:Gb,evt:"click"},{sel:"#tool_source_cancel,#svg_source_overlay,#tool_docprops_cancel,#tool_prefs_cancel",fn:Fb,evt:"click",key:["esc",false,false],hidekey:true},{sel:"#tool_source_save",fn:ib,evt:"click"},{sel:"#tool_delete,#tool_delete_multi",fn:Ya,evt:"click",key:["del/backspace",
+true]},{sel:"#tool_reorient",fn:vb,evt:"click"},{sel:"#tool_node_link",fn:aa,evt:"click"},{sel:"#tool_node_clone",fn:ka,evt:"click"},{sel:"#tool_node_delete",fn:M,evt:"click"},{sel:"#tool_openclose_path",fn:da,evt:"click"},{sel:"#tool_add_subpath",fn:P,evt:"click"},{sel:"#tool_move_top",fn:fb,evt:"click",key:B+"shift+up"},{sel:"#tool_move_bottom",fn:sb,evt:"click",key:B+"shift+down"},{sel:"#tool_move_up",fn:kb,evt:"click",key:[B+"up",true]},{sel:"#tool_move_down",fn:db,evt:"click",key:[B+"down",true]},
+{sel:"#tool_topath",fn:qb,evt:"click"},{sel:"#tool_make_link,#tool_make_link_multi",fn:wb,evt:"click"},{sel:"#tool_clone,#tool_clone_multi",fn:La,evt:"click",key:[B+"D",true]},{sel:"#tool_group",fn:ab,evt:"click",key:[B+"G",true]},{sel:"#tool_ungroup",fn:ab,evt:"click",key:B+"shift+G"},{sel:"#tool_unlink_use",fn:ab,evt:"click"},{sel:"[id^=tool_align]",fn:Nb,evt:"click"},{sel:"#tool_undo",fn:Eb,evt:"click",key:B+"z"},{sel:"#tool_redo",fn:Db,evt:"click",key:["y",true]},{sel:"#tool_cut",fn:ub,evt:"click",
+key:[B+"x",true]},{sel:"#tool_copy",fn:ta,evt:"click",key:B+"c"},{sel:"#tool_paste",fn:jb,evt:"click",key:B+"v"},{sel:"#tool_switch",fn:Kb,evt:"click",key:["x",true]},{sel:"#tool_bold",fn:ob,evt:"mousedown",key:[B+"B",true]},{sel:"#tool_italic",fn:Sa,evt:"mousedown",key:[B+"I",true]},{sel:"#copy_save_done",fn:Fb,evt:"click"},{key:"ctrl+left",fn:function(){Ra(0,1)}},{key:"ctrl+right",fn:function(){Ra(1,1)}},{key:"ctrl+shift+left",fn:function(){Ra(0,5)}},{key:"ctrl+shift+right",fn:function(){Ra(1,5)}},
+{key:"shift+O",fn:Na},{key:"shift+P",fn:Ea},{key:[B+"+",true],fn:function(){yb(2)}},{key:[B+"-",true],fn:function(){yb(0.5)}},{key:["up",true],fn:function(){ia(0,-1)}},{key:["down",true],fn:function(){ia(0,1)}},{key:["left",true],fn:function(){ia(-1,0)}},{key:["right",true],fn:function(){ia(1,0)}},{key:"shift+up",fn:function(){ia(0,-10)}},{key:"shift+down",fn:function(){ia(0,10)}},{key:"shift+left",fn:function(){ia(-10,0)}},{key:"shift+right",fn:function(){ia(10,0)}},{key:["alt+up",true],fn:function(){h.cloneSelectedElements(0,
+-1)}},{key:["alt+down",true],fn:function(){h.cloneSelectedElements(0,1)}},{key:["alt+left",true],fn:function(){h.cloneSelectedElements(-1,0)}},{key:["alt+right",true],fn:function(){h.cloneSelectedElements(1,0)}},{key:["alt+shift+up",true],fn:function(){h.cloneSelectedElements(0,-10)}},{key:["alt+shift+down",true],fn:function(){h.cloneSelectedElements(0,10)}},{key:["alt+shift+left",true],fn:function(){h.cloneSelectedElements(-10,0)}},{key:["alt+shift+right",true],fn:function(){h.cloneSelectedElements(10,
+0)}},{key:B+"A",fn:function(){h.selectAllInCurrentLayer()}},{key:"I",fn:function(){var s=a(".tool_button_current");if(s.length&&s[0].id!=="tool_eyedropper"){s.removeClass("tool_button_current").addClass("tool_button");a("#tool_eyedropper").addClass("tool_button_current").removeClass("tool_button")}h.setMode("eyedropper")}},{key:B+"shift+z",fn:Db},{key:"esc",fn:Ab}],n={"4/Shift+4":"#tools_rect_show","5/Shift+5":"#tools_ellipse_show"};return{setAll:function(){var s={};a.each(g,function(A,F){if(F.sel){var J=
+a(F.sel);if(J.length==0)return true;if(F.evt){if(svgedit.browser.isTouch()&&F.evt==="click")F.evt="mousedown";J[F.evt](F.fn)}if(F.parent&&a(F.parent+"_show").length!=0){var L=a(F.parent);L.length||(L=qa(F.parent.substr(1)));L.append(J);a.isArray(s[F.parent])||(s[F.parent]=[]);s[F.parent].push(F)}}if(F.key){var Z=F.fn,ba=false;if(a.isArray(F.key)){L=F.key[0];if(F.key.length>1)ba=F.key[1]}else L=F.key;L+="";svgedit.browser.isMac&&L.indexOf("+")!=-1&&L.split("+")[0]=="ctrl"&&L.replace("ctrl","cmd");
+a.each(L.split("/"),function(X,ha){a(document).bind("keydown",ha,function(oa){Z();ba&&oa.preventDefault();return false})});if(F.sel&&!F.hidekey&&J.attr("title")){var T=J.attr("title").split("[")[0]+" ("+L+")";n[L]=F.sel;J.parents("#main_menu").length||J.attr("title",T)}}});na(s);a(window).bind("keydown","tab",function(A){if(ga==="canvas"){A.preventDefault();Ea()}}).bind("keydown","shift+tab",function(A){if(ga==="canvas"){A.preventDefault();Na()}});a("#tool_zoom").dblclick(gb)},setTitles:function(){a.each(n,
+function(s,A){var F=a(A).parents("#main_menu").length;a(A).each(function(){var J=F?a(this).text().split(" [")[0]:this.title.split(" [")[0],L="";a.each(s.split("/"),function(Z,ba){var T=ba.split("+"),X="";if(T.length>1){X=T[0]+"+";ba=T[1]}L+=(Z?"/":"")+X+(uiStrings["key_"+ba]||ba)});if(F)this.lastChild.textContent=J+" ["+L+"]";else this.title=J+" ["+L+"]"})})},getButtonData:function(s){var A;a.each(g,function(F,J){if(J.sel===s)A=J});return A}}}();G.setAll();b.ready(function(){var g=curConfig.initTool,
+n=a("#tools_left, #svg_editor .tools_flyout"),s=n.find("#tool_"+g);g=n.find("#"+g);(s.length?s:g.length?g:a("#tool_select")).click().mouseup();curConfig.wireframe&&a("#tool_wireframe").click();curConfig.showlayers&&toggleSidePanel();a("#rulers").toggle(!!curConfig.showRulers)});a("#canvas_height").dragInput({min:10,max:null,step:10,callback:z,cursor:false,dragAdjust:0.1});a("#canvas_width").dragInput({min:10,max:null,step:10,callback:z,cursor:false,dragAdjust:0.1});a("#rect_width").dragInput({min:1,
+max:null,step:1,callback:changeAttribute,cursor:false});a("#rect_height").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#ellipse_cx").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#ellipse_cy").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#ellipse_rx").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#ellipse_ry").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});
+a("#image_height").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#circle_cx").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#circle_cy").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#circle_r").dragInput({min:1,max:null,step:1,callback:changeAttribute,cursor:false});a("#image_height").dragInput({min:0,max:null,step:1,callback:changeAttribute,cursor:false});a("#selected_x").dragInput({min:null,max:null,step:1,
+callback:changeAttribute,cursor:false});a("#selected_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#path_node_x").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#path_node_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#image_width").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#line_x1").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});
+a("#line_x2").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#line_y1").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#line_y2").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#path_x").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#path_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#rect_x").dragInput({min:null,max:null,step:1,callback:changeAttribute,
+cursor:false});a("#rect_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#g_x").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#g_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#image_x").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#text_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#text_x").dragInput({min:null,max:null,step:1,
+callback:changeAttribute,cursor:false});a("#image_y").dragInput({min:null,max:null,step:1,callback:changeAttribute,cursor:false});a("#rect_rx").dragInput({min:0,max:100,step:1,callback:changeAttribute,cursor:true});a("#stroke_width").dragInput({min:0,max:99,step:1,callback:function(g){var n=g.value;if(n==0&&Q&&["line","polyline"].indexOf(Q.nodeName)>=0)n=g.value=1;h.setStrokeWidth(n)},cursor:true,smallStep:0.1,start:1.5});a("#angle").dragInput({min:-180,max:180,step:1,callback:function(g){h.setRotationAngle(g.value);
+rotateCursor(g.value);a("#tool_reorient").toggleClass("disabled",g.value==0)},cursor:false,dragAdjust:0.5});a("#font_size").dragInput({min:1,max:250,step:1,callback:function(g){h.setFontSize(g.value)},cursor:true,stepfunc:function(g,n){var s=g.value-0,A=s+n,F=A>=s;if(n===0)return s;return s>=24?F?Math.round(s*1.1):Math.round(s/1.1):s<=1?F?s*2:s/2:A},dragAdjust:0.15});a("#group_opacity").dragInput({min:0,max:100,step:5,callback:changeAttribute,cursor:true,start:100});a("#blur").dragInput({min:0,max:10,
+step:0.1,callback:function(g){val=g.value;a("#blur").val(val);h.setBlur(val,true)},cursor:true,start:0});a("#zoom").val(h.getZoom()*100);a("#workarea").contextMenu({menu:"cmenu_canvas",inSpeed:0},function(g){switch(g){case "delete":Ya();break;case "cut":ub();break;case "copy":ta();break;case "paste":h.pasteElements();break;case "paste_in_place":h.pasteElements("in_place");break;case "group":h.groupSelectedElements();break;case "ungroup":h.ungroupSelectedElement();break;case "move_front":fb();break;
+case "move_up":mb("Up");break;case "move_down":mb("Down");break;case "move_back":sb();break;default:svgedit.contextmenu&&svgedit.contextmenu.hasCustomHandler(g)&&svgedit.contextmenu.getCustomHandler(g).call()}});a(".contextMenu li").mousedown(function(g){g.preventDefault()});a("#cmenu_canvas li").disableContextMenu();S.enableContextMenuItems("#delete,#cut,#copy");window.onbeforeunload=function(){if(K.getUndoStackSize()===0)b.show_save_warning=false;if(!curConfig.no_save_warning&&b.show_save_warning)return uiStrings.notification.unsavedChanges};
+b.openPrep=function(g){a("#main_menu").hide();K.getUndoStackSize()===0?g(true):a.confirm(uiStrings.notification.QwantToOpen,g)};if(window.FileReader){l=a('').change(function(){var g=this;b.openPrep(function(n){if(n){h.clear();if(g.files.length==1){n=new FileReader;n.onloadend=function(s){p(s.target.result);D()};n.readAsText(g.files[0])}}})});a("#tool_open").show().prepend(l);l=a('').change(function(){a("#main_menu").hide();if(this.files.length==1){var g=new FileReader;
+g.onloadend=function(n){h.importSvgString(n.target.result,true);D()};g.readAsText(this.files[0])}});a("#tool_import").show().prepend(l)}var D=b.updateCanvas=function(g,n){var s=H.width(),A=H.height(),F=s,J=A,L=h.getZoom(),Z=a("#svgcanvas"),ba={x:H[0].scrollLeft+F/2,y:H[0].scrollTop+J/2},T=curConfig.canvas_expansion;s=Math.max(F,h.contentW*L*T);A=Math.max(J,h.contentH*L*T);s==F&&A==J?H.css("overflow","hidden"):H.css("overflow","scroll");T=Z.height()/2;var X=Z.width()/2;Z.width(s).height(A);var ha=
+A/2,oa=s/2,ea=h.updateCanvas(s,A),ua=oa/X;s=s/2-F/2;A=A/2-J/2;if(n){n.x+=ea.x;n.y+=ea.y}else n={x:oa+(ba.x-X)*ua,y:ha+(ba.y-T)*ua};if(g)if(h.contentW>H.width()){H[0].scrollLeft=ea.x-10;H[0].scrollTop=ea.y-10}else{H[0].scrollLeft=s;H[0].scrollTop=A}else{H[0].scrollLeft=n.x-F/2;H[0].scrollTop=n.y-J/2}if(curConfig.showRulers){F=Z;L=L;document.getElementById("workarea");document.getElementById("title_show");L||(L=h.getZoom());F||(F=a("#svgcanvas"));J=h.getContentElem();Z=svgedit.units.getTypeMap()[curConfig.baseUnit];
+for(ba=0;ba<2;ba++){ha=(T=ba===0)?"x":"y";s=T?"width":"height";X=J.getAttribute(ha)-0;ha=a("#ruler_"+ha+" canvas:first");$hcanv=ha.clone();ha.replaceWith($hcanv);A=$hcanv[0];oa=ha=F[s]()*2;A.parentNode.style[s]=oa+"px";ea=0;var Ma;ua=A.getContext("2d");ua.fillStyle="rgb(200,0,0)";ua.fillRect(0,0,A.width,A.height);$hcanv.siblings().remove();if(ha>=3E4){var sa=parseInt(ha/3E4)+1;Ma=Array(sa);Ma[0]=ua;for(var ra=1;ra=1)ra=Math.round(sa);else{ra=(A+"").split(".")[1].length;ra=sa.toFixed(ra)-0}if(ra!==0&&ra!==1E3&&ra%1E3===0)ra=ra/1E3+"K";if(T){ua.fillText(ra,Oa+2,8);ua.fillStyle=
+"#777"}else{sa=(ra+"").split("");for(ra=0;raha){ea++;ua.stroke();if(ea>=Ma.length){ra=10;Oa=oa;continue}ua=Ma[ea];Oa-=3E4;xb=Math.round(Oa+sa*ra)+0.5}var Cb=ra%2?12:10;if(T){ua.moveTo(xb,15);ua.lineTo(xb,Cb)}else{ua.moveTo(15,xb);ua.lineTo(Cb,xb)}}}ua.strokeStyle="#666";ua.stroke()}H.scroll()}},w=[];for(l=0.1;l<1E5;l*=10){w.push(1*l);w.push(2*l);w.push(5*l)}D(true);
+try{var E=function(g){if(window.JSON&&JSON.stringify)return JSON.stringify(g);var n=arguments.callee;if(typeof g=="boolean"||typeof g=="number")return g+"";else if(typeof g=="string")return'"'+g.replace(/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,function(F){return"\\u"+("0000"+F.charCodeAt(0).toString(16)).slice(-4)})+'"';else if(g.length){for(var s=0;s0?(c-u)/f:200,l=d/o*f,v=0,B=this.getAttribute("data-attr"),q=svgEditor.canvas,K=q.getSelectedElems(),R=svgedit.browser.isTouch(),O=true,H=d&&this.dragCfg.cursor?$("").appendTo(h):false;b.attr("readonly","readonly");H&&!isNaN(this.dragCfg.start)&&H.css("top",this.dragCfg.start*
-1/l+o);this.adjustValue=function(S,U){var N;S=parseFloat(S);if(isNaN(this.value))N=this.dragCfg.reset;else if($.isFunction(this.dragCfg.stepfunc)){N=this.dragCfg.stepfunc(this,S);console.log(N)}else N=Number((Number(this.value)+Number(S)).toFixed(5));if(c!==null)N=Math.min(N,c);if(u!==null)N=Math.max(N,u);H&&this.updateCursor(N);this.value=N;h.attr("data-value",N);$.isFunction(this.dragCfg.callback)&&this.dragCfg.callback(this,U)};h.toggleClass("draginput",h.is("label"));this.move=function(S,U,N){if(R)S=
S.originalEvent.touches[0];if(v===0)v=U;U=(S.pageY-v)*-1;v=S.pageY;N=U*l*p;this.adjustValue(N.toFixed(f<1?1:0))};this.stop=function(){$("body").removeClass("dragging");h.removeClass("active");O=true;$(window).unbind("mousemove.draginput touchmove.draginput mouseup.draginput touchend.draginput");v=0;if(K[0]){var S=q.undoMgr.finishUndoableChange();S.isEmpty()||q.undoMgr.addCommandToHistory(S)}this.adjustValue(0,O)};this.updateCursor=function(){var S=parseFloat(this.value)*-1/l+o;H.css("top",S)};this.start=