diff --git a/editor/svg-editor.js b/editor/svg-editor.js index 4cf068ef..a11a225a 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -759,8 +759,6 @@ function svg_edit_setup() { ['shift+P', selectNext], ['ctrl+up', function(evt){clickZoom(true);evt.preventDefault();}], ['ctrl+down', function(evt){clickZoom();evt.preventDefault();}], - ['+', function(evt){clickZoom(true);evt.preventDefault();}], - ['-', function(evt){clickZoom();evt.preventDefault();}], ['up', function(evt){moveSelected(0,-1);evt.preventDefault();}], ['down', function(evt){moveSelected(0,1);evt.preventDefault();}], ['left', function(evt){moveSelected(-1,0);evt.preventDefault();}], diff --git a/editor/svg-editor.min.js b/editor/svg-editor.min.js deleted file mode 100644 index 6c0b0194..00000000 --- a/editor/svg-editor.min.js +++ /dev/null @@ -1 +0,0 @@ -if(!window.console){window.console=new function(){this.log=function(a){};this.dir=function(a){}}}function svg_edit_setup(){var I=["#000000","#202020","#404040","#606060","#808080","#a0a0a0","#c0c0c0","#e0e0e0","#ffffff","#800000","#ff0000","#808000","#ffff00","#008000","#00ff00","#008080","#00ffff","#000080","#0000ff","#800080","#ff00ff","#2b0000","#550000","#800000","#aa0000","#d40000","#ff0000","#ff2a2a","#ff5555","#ff8080","#ffaaaa","#ffd5d5","#280b0b","#501616","#782121","#a02c2c","#c83737","#d35f5f","#de8787","#e9afaf","#f4d7d7","#241c1c","#483737","#6c5353","#916f6f","#ac9393","#c8b7b7","#e3dbdb","#2b1100","#552200","#803300","#aa4400","#d45500","#ff6600","#ff7f2a","#ff9955","#ffb380","#ffccaa","#ffe6d5","#28170b","#502d16","#784421","#a05a2c","#c87137","#d38d5f","#deaa87","#e9c6af","#f4e3d7","#241f1c","#483e37","#6c5d53","#917c6f","#ac9d93","#c8beb7","#e3dedb","#2b2200","#554400","#806600","#aa8800","#d4aa00","#ffcc00","#ffd42a","#ffdd55","#ffe680","#ffeeaa","#fff6d5","#28220b","#504416","#786721","#a0892c","#c8ab37","#d3bc5f","#decd87","#e9ddaf","#f4eed7","#24221c","#484537","#6c6753","#918a6f","#aca793","#c8c4b7","#e3e2db","#222b00","#445500","#668000","#88aa00","#aad400","#ccff00","#d4ff2a","#ddff55","#e5ff80","#eeffaa","#f6ffd5","#22280b","#445016","#677821","#89a02c","#abc837","#bcd35f","#cdde87","#dde9af","#eef4d7","#22241c","#454837","#676c53","#8a916f","#a7ac93","#c4c8b7","#e2e3db","#112b00","#225500","#338000","#44aa00","#55d400","#66ff00","#7fff2a","#99ff55","#b3ff80","#ccffaa","#e5ffd5","#17280b","#2d5016","#447821","#5aa02c","#71c837","#8dd35f","#aade87","#c6e9af","#e3f4d7","#1f241c","#3e4837","#5d6c53","#7c916f","#9dac93","#bec8b7","#dee3db","#002b00","#005500","#008000","#00aa00","#00d400","#00ff00","#2aff2a","#55ff55","#80ff80","#aaffaa","#d5ffd5","#0b280b","#165016","#217821","#2ca02c","#37c837","#5fd35f","#87de87","#afe9af","#d7f4d7","#1c241c","#374837","#536c53","#6f916f","#93ac93","#b7c8b7","#dbe3db","#002b11","#005522","#008033","#00aa44","#00d455","#00ff66","#2aff80","#55ff99","#80ffb3","#aaffcc","#d5ffe6","#0b2817","#16502d","#217844","#2ca05a","#37c871","#5fd38d","#87deaa","#afe9c6","#d7f4e3","#1c241f","#37483e","#536c5d","#6f917c","#93ac9d","#b7c8be","#dbe3de","#002b22","#005544","#008066","#00aa88","#00d4aa","#00ffcc","#2affd5","#55ffdd","#80ffe6","#aaffee","#d5fff6","#0b2822","#165044","#217867","#2ca089","#37c8ab","#5fd3bc","#87decd","#afe9dd","#d7f4ee","#1c2422","#374845","#536c67","#6f918a","#93aca7","#b7c8c4","#dbe3e2","#00222b","#004455","#006680","#0088aa","#00aad4","#00ccff","#2ad4ff","#55ddff","#80e5ff","#aaeeff","#d5f6ff","#0b2228","#164450","#216778","#2c89a0","#37abc8","#5fbcd3","#87cdde","#afdde9","#d7eef4","#1c2224","#374548","#53676c","#6f8a91","#93a7ac","#b7c4c8","#dbe2e3","#00112b","#002255","#003380","#0044aa","#0055d4","#0066ff","#2a7fff","#5599ff","#80b3ff","#aaccff","#d5e5ff","#0b1728","#162d50","#214478","#2c5aa0","#3771c8","#5f8dd3","#87aade","#afc6e9","#d7e3f4","#1c1f24","#373e48","#535d6c","#6f7c91","#939dac","#b7bec8","#dbdee3","#00002b","#000055","#000080","#0000aa","#0000d4","#0000ff","#2a2aff","#5555ff","#8080ff","#aaaaff","#d5d5ff","#0b0b28","#161650","#212178","#2c2ca0","#3737c8","#5f5fd3","#8787de","#afafe9","#d7d7f4","#1c1c24","#373748","#53536c","#6f6f91","#9393ac","#b7b7c8","#dbdbe3","#11002b","#220055","#330080","#4400aa","#5500d4","#6600ff","#7f2aff","#9955ff","#b380ff","#ccaaff","#e5d5ff","#170b28","#2d1650","#442178","#5a2ca0","#7137c8","#8d5fd3","#aa87de","#c6afe9","#e3d7f4","#1f1c24","#3e3748","#5d536c","#7c6f91","#9d93ac","#beb7c8","#dedbe3","#22002b","#440055","#660080","#8800aa","#aa00d4","#cc00ff","#d42aff","#dd55ff","#e580ff","#eeaaff","#f6d5ff","#220b28","#441650","#672178","#892ca0","#ab37c8","#bc5fd3","#cd87de","#ddafe9","#eed7f4","#221c24","#453748","#67536c","#8a6f91","#a793ac","#c4b7c8","#e2dbe3","#2b0022","#550044","#800066","#aa0088","#d400aa","#ff00cc","#ff2ad4","#ff55dd","#ff80e5","#ffaaee","#ffd5f6","#280b22","#501644","#782167","#a02c89","#c837ab","#d35fbc","#de87cd","#e9afdd","#f4d7ee","#241c22","#483745","#6c5367","#916f8a","#ac93a7","#c8b7c4","#e3dbe2","#2b0011","#550022","#800033","#aa0044","#d40055","#ff0066","#ff2a7f","#ff5599","#ff80b2","#ffaacc","#ffd5e5","#280b17","#50162d","#782144","#a02c5a","#c83771","#d35f8d","#de87aa","#e9afc6","#f4d7e3","#241c1f","#48373e","#6c535d","#916f7c","#ac939d","#c8b7be","#e3dbde"];var O=false;var y="";var T=new SvgCanvas(document.getElementById("svgcanvas"));var L=function(){$(".tool_button_current").removeClass("tool_button_current").addClass("tool_button");$("#tool_select").addClass("tool_button_current");$("#styleoverrides").text("#svgcanvas svg *{cursor:move;pointer-events:all} #svgcanvas svg{cursor:default}");T.setMode("select")};var z=1250;var ap=false;var al=null;var Z=false;var R=false;var P=["x","y","x1","x2","y1","y2","cx","cy","width","height","r","rx","ry","width","height","radius"];var C=["em","ex","px","cm","mm","in","pt","pc","%"];var g=new $.jGraduate.Paint({solidColor:"FF0000"});var E=new $.jGraduate.Paint({solidColor:"000000"});var at=function(ay,i){ay.open("data:image/svg+xml;base64,"+Utils.encode64(i))};var ad=function(ay,i){al=(i.length==1||i[1]==null?i[0]:null);Z=(i.length>=2&&i[1]!=null);if(al!=null){if(T.getMode()!="multiselect"){L()}u()}Y()};var ah=function(aB,ay){for(var az=0;az0){$("#tool_undo").removeClass("tool_button_disabled")}else{$("#tool_undo").addClass("tool_button_disabled")}if(T.getRedoStackSize()>0){$("#tool_redo").removeClass("tool_button_disabled")}else{$("#tool_redo").addClass("tool_button_disabled")}T.addedNew=false};$("#text").focus(function(){ap=true});$("#text").blur(function(){ap=false});T.bind("selected",ad);T.bind("changed",ah);T.bind("saved",at);var au='
';$.each(I,function(ay,az){au+='
'});$("#palette").append(au);var ai=$("#tools_rect_show").position();$("#tools_rect").css({left:ai.left+4,top:ai.top+70});ai=$("#tools_ellipse_show").position();$("#tools_ellipse").css({left:ai.left+4,top:ai.top+70});var an=function(i){T.setRectRadius(i.value)};var am=function(i){var ay=i.value;if(ay==0&&al&&$.inArray(al.nodeName,["line","polyline"])!=-1){ay=i.value=1}T.setStrokeWidth(ay)};var q=function(i){T.setRotationAngle(i.value)};$("#stroke_style").change(function(){T.setStrokeStyle(this.options[this.selectedIndex].value)});$("select").change(function(){$(this).blur()});$("#group_opacity").change(function(){T.setOpacity(this.options[this.selectedIndex].value)});$("#font_size").change(function(){T.setFontSize(this.options[this.selectedIndex].value)});$("#font_family").change(function(){T.setFontFamily(this.options[this.selectedIndex].value)});$("#text").keyup(function(){T.setTextContent(this.value)});$(".attr_changer").change(function(){var i=this.getAttribute("alt");var az=this.value;var ay=false;if($.inArray(i,P)!=-1){if(!isNaN(az)){ay=true}else{}}else{ay=true}if(!ay){alert("Invalid value given for"+$(this).attr("title").replace("Change","")+".");this.value=al.getAttribute(i);return false}T.changeSelectedAttribute(i,az)});$("#palette").mouseover(function(){var i=$('');$(this).append(i);i.focus().remove()});$(".palette_item").click(function(i){var aA=(i.shiftKey?"stroke":"fill");var aC=(i.shiftKey?"#stroke_":"#fill_");var az=$(this).attr("data-rgb");var ay=document.getElementById("gradbox_"+aA).parentNode.firstChild;var aB=null;if(az=="transparent"||az=="initial"){az="none";$(aC+"opacity").html("N/A");aB=new $.jGraduate.Paint()}else{aB=new $.jGraduate.Paint({alpha:100,solidColor:az.substr(1)})}ay.setAttribute("fill",az);if(i.shiftKey){E=aB;if(T.getStrokeColor()!=az){T.setStrokeColor(az)}if(az!="none"&&T.getStrokeOpacity()!=1){T.setStrokeOpacity(1);$("#stroke_opacity").html("100 %")}}else{g=aB;if(T.getFillColor()!=az){T.setFillColor(az)}if(az!="none"&&T.getFillOpacity()!=1){T.setFillOpacity(1);$("#fill_opacity").html("100 %")}}w()});var F=function(ay,i){if($(ay).hasClass("tool_button_disabled")){return false}var i=i||"normal";$(".tools_flyout").fadeOut(i);$("#styleoverrides").text("");$(".tool_button_current").removeClass("tool_button_current").addClass("tool_button");$(ay).addClass("tool_button_current");T.clearSelection();return true};var G=function(){if(F("#tool_select")){T.setMode("select");$("#styleoverrides").text("#svgcanvas svg *{cursor:move;pointer-events:all}, #svgcanvas svg{cursor:default}")}};var av=function(){if(F("#tool_path")){T.setMode("path")}};var U=function(){if(F("#tool_line")){T.setMode("line")}};var l=function(){if(F("#tools_rect_show",z)){z="normal";T.setMode("square")}$("#tools_rect_show").attr("src","images/square.png")};var S=function(){if(F("#tools_rect_show")){T.setMode("rect")}$("#tools_rect_show").attr("src","images/rect.png")};var o=function(){if(F("#tools_rect_show")){T.setMode("fhrect")}$("#tools_rect_show").attr("src","images/freehand-square.png")};var a=function(){if(F("#tools_ellipse_show",z)){z="normal";T.setMode("circle")}$("#tools_ellipse_show").attr("src","images/circle.png")};var D=function(){if(F("#tools_ellipse_show")){T.setMode("ellipse")}$("#tools_ellipse_show").attr("src","images/ellipse.png")};var N=function(){if(F("#tools_ellipse_show")){T.setMode("fhellipse")}$("#tools_ellipse_show").attr("src","images/freehand-circle.png")};var r=function(){F("#tool_text");T.setMode("text")};var ab=function(){F("#tool_poly");T.setMode("poly")};var c=function(){if(al!=null||Z){T.deleteSelectedElements()}};var f=function(){if(al!=null){T.moveToTopSelectedElement()}};var B=function(){if(al!=null){T.moveToBottomSelectedElement()}};var m=function(ay,i){if(al!=null||Z){T.moveSelectedElements(ay,i)}};var aj=function(){T.cycleElement(1)};var Q=function(){T.cycleElement(0)};var d=function(i){if(al==null||Z){return}var az=5;if(!i){az*=-1}var ay=$("#angle").val()*1+az;T.setRotationAngle(ay)};var X=function(){if(confirm("Do you want to clear the drawing?\nThis will also erase your undo history!")){T.clear();Y()}};var M=function(){T.setBold(!T.getBold());Y()};var W=function(){T.setItalic(!T.getItalic());Y()};var aa=function(){T.save()};var ak=function(){T.open()};var s=function(){if(T.getUndoStackSize()>0){T.undo()}};var K=function(){if(T.getRedoStackSize()>0){T.redo()}};var A=function(){T.cloneSelectedElements()};var e=function(){T.alignSelectedElements("l",$("#align_relative_to option:selected").val())};var ae=function(){T.alignSelectedElements("c",$("#align_relative_to option:selected").val())};var j=function(){T.alignSelectedElements("r",$("#align_relative_to option:selected").val())};var H=function(){T.alignSelectedElements("t",$("#align_relative_to option:selected").val())};var ac=function(){T.alignSelectedElements("m",$("#align_relative_to option:selected").val())};var v=function(){T.alignSelectedElements("b",$("#align_relative_to option:selected").val())};var k=function(){if(R){return}R=true;var i=T.getSvgString();$("#svg_source_textarea").val(i);$("#svg_source_editor").fadeIn();h();$("#svg_source_textarea").focus()};var h=function(){var i=$("#svg_source_container").height()-80;$("#svg_source_textarea").css("height",i)};var ao=function(){if(!R){return}if(!T.setSvgString($("#svg_source_textarea").val())){if(!confirm("There were parsing errors in your SVG source.\nRevert back to original SVG source?")){return false}}T.clearSelection();ar()};var V=function(){if(!R){return}var i=T.getSvgString();if(i!=$("#svg_source_textarea").val()){if(!confirm("Ignore changes made to SVG source?")){return false}}ar()};var ar=function(){$("#svg_source_editor").hide();R=false;$("#svg_source_textarea").blur()};$(window).resize(function(i){if(!R){return}h()});$("#tool_select").click(G);$("#tool_path").click(av);$("#tool_line").click(U);$("#tool_square").mouseup(l);$("#tool_rect").mouseup(S);$("#tool_fhrect").mouseup(o);$("#tool_circle").mouseup(a);$("#tool_ellipse").mouseup(D);$("#tool_fhellipse").mouseup(N);$("#tool_text").click(r);$("#tool_poly").click(ab);$("#tool_clear").click(X);$("#tool_save").click(aa);$("#tool_open").click(ak);$("#tool_source").click(k);$("#tool_source_cancel,#svg_source_overlay").click(V);$("#tool_source_save").click(ao);$("#tool_delete").click(c);$("#tool_delete_multi").click(c);$("#tool_move_top").click(f);$("#tool_move_bottom").click(B);$("#tool_undo").click(s);$("#tool_redo").click(K);$("#tool_clone").click(A);$("#tool_clone_multi").click(A);$("#tool_alignleft").click(e);$("#tool_aligncenter").click(ae);$("#tool_alignright").click(j);$("#tool_aligntop").click(H);$("#tool_alignmiddle").click(ac);$("#tool_alignbottom").click(v);$("#tools_rect_show").click(l);$("#tools_ellipse_show").click(a);$("#tool_bold").mousedown(M);$("#tool_italic").mousedown(W);function ag(){var az=["clear","open","save","source","delete","delete_multi","paste","clone","clone_multi","move_top","move_bottom"];var i="";var ay="tool_button_current";$.each(az,function(aA,aB){i+="#tool_"+aB+(aA==az.length-1?",":"")});$(i).mousedown(function(){$(this).addClass(ay)}).bind("mousedown mouseout",function(){$(this).removeClass(ay)});$("#tool_undo, #tool_redo").mousedown(function(){if(!$(this).hasClass("tool_button_disabled")){$(this).addClass(ay)}}).bind("mousedown mouseout",function(){$(this).removeClass(ay)})}ag();if(O){var x=["tool_clear","tool_save","tool_source","tool_undo","tool_redo","tool_clone"];var J=x.length;while(J--){var b=document.getElementById(x[J]);var n=b.title;var aq=n.indexOf("Ctrl+");b.title=[n.substr(0,aq),"Cmd+",n.substr(aq+5)].join("")}}function t(){var i=[["1",G],["2",av],["3",U],["Shift+4",l],["4",S],["Shift+5",a],["5",D],["6",r],["7",ab],[y+"N",function(ay){X();ay.preventDefault()}],[y+"S",function(ay){R?ao():aa();ay.preventDefault()}],[y+"O",function(ay){ak();ay.preventDefault()}],["del",function(ay){c();ay.preventDefault()}],["backspace",function(ay){c();ay.preventDefault()}],["shift+up",f],["shift+down",B],["shift+left",function(){d(0)}],["shift+right",function(){d(1)}],["shift+O",Q],["shift+P",aj],["up",function(ay){m(0,-1);ay.preventDefault()}],["down",function(ay){m(0,1);ay.preventDefault()}],["left",function(ay){m(-1,0);ay.preventDefault()}],["right",function(ay){m(1,0);ay.preventDefault()}],[y+"z",function(ay){s();ay.preventDefault()}],[y+"y",function(ay){K();ay.preventDefault()}],[y+"u",function(ay){k();ay.preventDefault()}],[y+"c",function(ay){A();ay.preventDefault()}],["esc",V,false]];$.each(i,function(az,aA){var ay=!(aA.length>2&&!aA[2]);$(document).bind("keydown",{combi:aA[0],disableInInput:ay},aA[1])});$(".attr_changer").bind("keydown",{combi:"return",disableInInput:false},function(ay){$(this).change();ay.preventDefault()})}t();var af=function(az){var ay=az.attr("id")=="stroke_color"?"stroke":"fill";var i=(ay=="stroke"?$("#stroke_opacity"):$("#fill_opacity"));var aC=(ay=="stroke"?E:g);var aB=(ay=="stroke"?"Pick a Stroke Paint and Opacity":"Pick a Fill Paint and Opacity");var aA=false;if(aC.type=="none"){aC=new $.jGraduate.Paint({solidColor:"ffffff"});aA=true}var aD=az.position();$("#color_picker").css({left:aD.left-140,bottom:124-aD.top}).jGraduate({paint:aC,window:{pickerTitle:aB},images:{clientPath:"jgraduate/images/"},},function(aI){aC=new $.jGraduate.Paint(aI);var aG=document.getElementById("gradbox_"+ay);var aH=aG.parentNode;var aF=aH.firstChild;if(aC.type=="linearGradient"){aH.removeChild(aG);var aE=aH.appendChild(document.importNode(aC.linearGradient,true));aE.id="gradbox_"+ay;aF.setAttribute("fill","url(#gradbox_"+ay+")")}else{aF.setAttribute("fill","#"+aC.solidColor)}i.html(aC.alpha+" %");if(ay=="stroke"){T.setStrokePaint(aC,true)}else{T.setFillPaint(aC,true)}u();$("#color_picker").hide()},function(aE){$("#color_picker").hide()})};var w=function(){var i=(T.getFillColor()=="none");var ay=(T.getStrokeColor()=="none");var aB=["#tool_path","#tool_line"];var aA=["#tools_rect_show","#tools_ellipse_show","#tool_text"];if(ay){for(aq in aB){var az=aB[aq];if($(az).hasClass("tool_button_current")){G()}$(az).removeClass("tool_button").addClass("tool_button_disabled")}}else{for(aq in aB){var az=aB[aq];$(az).removeClass("tool_button_disabled").addClass("tool_button")}}if(ay&&i){for(aq in aA){var az=aA[aq];if($(az).hasClass("tool_button_current")){G()}$(az).removeClass("tool_button").addClass("tool_button_disabled")}}else{for(aq in aA){var az=aA[aq];$(az).removeClass("tool_button_disabled").addClass("tool_button")}}};var p=new DOMParser().parseFromString(' ',"text/xml");var ax=p.getElementById("gradbox_");ax.id="gradbox_fill";$("#fill_color").append(document.importNode(p.documentElement,true));ax.id="gradbox_stroke";$(p.documentElement.firstChild).attr("fill","#000000");$("#stroke_color").append(document.importNode(p.documentElement,true));$("#fill_color").click(function(){af($(this));w()});$("#stroke_color").click(function(){af($(this));w()});$("#tools_rect_show").mousedown(function(i){$("#tools_rect").show();i.preventDefault()});$("#tools_rect").mouseleave(function(){$("#tools_rect").fadeOut()});$("#tool_move_top").mousedown(function(i){$("#tools_stacking").show();i.preventDefault()});$("#tools_ellipse_show").mousedown(function(i){$("#tools_ellipse").show();i.preventDefault()});$("#tools_ellipse").mouseleave(function(){$("#tools_ellipse").fadeOut()});$(".tool_flyout_button").mouseover(function(){$(this).addClass("tool_flyout_button_current")}).mouseout(function(){$(this).removeClass("tool_flyout_button_current")});function aw(i,aA){var ay=i+"x"+aA;var az=false;$("#resolution option").each(function(){if($(this).text()==ay){$("#resolution").val(i+"x"+aA);az=true}});if(!az){$("#resolution").val("Custom")}$("#svgcanvas").css({width:i,height:aA})}$("#resolution").change(function(){if(this.value=="Custom"){var aA=prompt("Please enter custom size (i.e. 400x300)","");var ay=aA.match(/(\d+)[x \/,](\d+)/);if(!ay){alert("Invalid size. Please format it as WIDTHxHEIGHT (like 400x300)");return false}else{var i=ay[1],aB=ay[2];if(i=="0"||aB=="0"){alert("Invalid size. Width or height may not be 0.");return false}}}else{if(this.value=="Fit to content"){var i="",aB=""}else{var az=this.value.split("x");var i=parseInt(az[0]),aB=parseInt(az[1])}}T.setResolution(i,aB)});$("#rect_rx").SpinButton({min:0,max:1000,step:1,callback:an});$("#stroke_width").SpinButton({min:0,max:99,step:1,callback:am});$("#angle").SpinButton({min:-180,max:180,step:5,callback:q});T.setCustomHandlers=function(i){if(i.open){$("#tool_open").show();T.bind("opened",i.open)}if(i.save){T.bind("saved",i.save)}};return T}$(function(){svgCanvas=svg_edit_setup()}); \ No newline at end of file diff --git a/editor/svgcanvas.min.js b/editor/svgcanvas.min.js deleted file mode 100644 index 10ea7ffb..00000000 --- a/editor/svgcanvas.min.js +++ /dev/null @@ -1 +0,0 @@ -if(!window.console){window.console=new function(){this.log=function(a){};this.dir=function(a){}}}var svgWhiteList={circle:["cx","cy","fill","fill-opacity","id","opacity","r","stroke","stroke-dasharray","stroke-opacity","stroke-width","transform"],defs:[],ellipse:["cx","cy","fill","fill-opacity","id","opacity","rx","ry","stroke","stroke-dasharray","stroke-opacity","stroke-width","transform"],line:["fill","fill-opacity","id","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-opacity","stroke-width","transform","x1","x2","y1","y2"],linearGradient:["id","gradientTransform","gradientUnits","spreadMethod","x1","x2","y1","y2"],path:["d","fill","fill-opacity","id","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-opacity","stroke-width","transform"],polygon:["id","fill","fill-opacity","id","opacity","points","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-opacity","stroke-width","transform"],polyline:["id","fill","fill-opacity","opacity","points","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-opacity","stroke-width","transform"],radialGradient:["id","cx","cy","fx","fy","gradientTransform","gradientUnits","r","spreadMethod"],rect:["fill","fill-opacity","height","id","opacity","rx","ry","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-opacity","stroke-width","transform","width","x","y"],stop:["id","offset","stop-color","stop-opacity"],svg:["id","height","transform","width","xmlns"],text:["fill","fill-opacity","font-family","font-size","font-style","font-weight","id","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-opacity","stroke-width","transform","text-anchor","x","y"],};function SvgCanvas(an){function V(at,c,au){this.elem=at;this.text=au?("Change "+at.tagName+" "+au):("Change "+at.tagName);this.newValues={};this.oldValues=c;for(attr in c){if(attr=="#text"){this.newValues[attr]=at.textContent}else{this.newValues[attr]=at.getAttribute(attr)}}this.apply=function(){for(attr in this.newValues){if(this.newValues[attr]){if(attr=="#text"){this.elem.textContent=this.newValues[attr]}else{this.elem.setAttribute(attr,this.newValues[attr])}}else{if(attr!="#text"){this.elem.textContent=""}else{this.elem.removeAttribute(attr)}}}if(attr!="transform"){var ay=n.getRotationAngle(at);if(ay){var ax=at.getBBox();var av=parseInt(ax.x+ax.width/2),az=parseInt(ax.y+ax.height/2);var aw=["rotate(",ay," ",av,",",az,")"].join("");if(aw!=at.getAttribute("transform")){at.setAttribute("transform",aw)}}}return true};this.unapply=function(){for(attr in this.oldValues){if(this.oldValues[attr]){if(attr=="#text"){this.elem.textContent=this.oldValues[attr]}else{this.elem.setAttribute(attr,this.oldValues[attr])}}else{if(attr=="#text"){this.elem.textContent=""}else{this.elem.removeAttribute(attr)}}}if(attr!="transform"){var ay=n.getRotationAngle(at);if(ay){var ax=at.getBBox();var av=parseInt(ax.x+ax.width/2),az=parseInt(ax.y+ax.height/2);var aw=["rotate(",ay," ",av,",",az,")"].join("");if(aw!=at.getAttribute("transform")){at.setAttribute("transform",aw)}}}return true};this.elements=function(){return[this.elem]}}function aq(c,at){this.elem=c;this.text=at||("Create "+c.tagName);this.parent=c.parentNode;this.apply=function(){this.elem=this.parent.insertBefore(this.elem,this.elem.nextSibling)};this.unapply=function(){this.parent=this.elem.parentNode;this.elem=this.elem.parentNode.removeChild(this.elem)};this.elements=function(){return[this.elem]}}function aa(at,c,au){this.elem=at;this.text=au||("Delete "+at.tagName);this.parent=c;this.apply=function(){this.parent=this.elem.parentNode;this.elem=this.parent.removeChild(this.elem)};this.unapply=function(){this.elem=this.parent.insertBefore(this.elem,this.elem.nextSibling)};this.elements=function(){return[this.elem]}}function K(at,au,c,av){this.elem=at;this.text=av?("Move "+at.tagName+" to "+av):("Move "+at.tagName+"top/bottom");this.oldNextSibling=au;this.oldParent=c;this.newNextSibling=at.nextSibling;this.newParent=at.parentNode;this.apply=function(){this.elem=this.newParent.insertBefore(this.elem,this.newNextSibling)};this.unapply=function(){this.elem=this.oldParent.insertBefore(this.elem,this.oldNextSibling)};this.elements=function(){return[this.elem]}}function H(c){this.text=c||"Batch Command";this.stack=[];this.apply=function(){var at=this.stack.length;for(var au=0;au=0;at--){this.stack[at].unapply()}};this.elements=function(){var at=[];var aw=this.stack.length;while(aw--){var av=this.stack[aw].elements();var au=av.length;while(au--){if(at.indexOf(av[au])==-1){at.push(av[au])}}}return at};this.addSubCommand=function(at){this.stack.push(at)};this.isEmpty=function(){return this.stack.length==0}}function R(at,c){this.id=at;this.selectedElement=c;this.locked=true;this.reset=function(au){this.locked=true;this.selectedElement=au;this.resize();N.update();this.selectorGroup.setAttribute("display","inline")};this.selectorGroup=g({element:"g",attr:{id:("selectorGroup"+this.id)}});this.selectorRect=this.selectorGroup.appendChild(g({element:"rect",attr:{id:("selectedBox"+this.id),fill:"none",stroke:"blue","stroke-width":"1","stroke-dasharray":"5,5",width:1,height:1,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(g({element:"line",attr:{id:("selectorGrip_rotate_connector_"+this.id),stroke:"blue","stroke-width":"1",}}));this.rotateGrip=this.selectorGroup.appendChild(g({element:"circle",attr:{id:("selectorGrip_rotate_"+this.id),fill:"lime",r:4,stroke:"blue","stroke-width":2}}));for(dir in this.selectorGrips){this.selectorGrips[dir]=this.selectorGroup.appendChild(g({element:"rect",attr:{id:("selectorGrip_"+dir+"_"+this.id),fill:"blue",width:6,height:6,style:("cursor:"+dir+"-resize"),"stroke-width":2,"pointer-events":"all",display:"none"}}));$("#"+this.selectorGrips[dir].id).mousedown(function(){aj="resize";af=this.id.substr(13,this.id.indexOf("_",13)-13)});$("#selectorGrip_rotate_"+at).mousedown(function(){aj="rotate"})}this.showGrips=function(au){var av=au?"inline":"none";this.rotateGrip.setAttribute("display",av);this.rotateGripConnector.setAttribute("display",av);var aw=this.selectedElement;if(aw&&aw.tagName=="text"){av="none"}for(dir in this.selectorGrips){this.selectorGrips[dir].setAttribute("display",av)}if(aw){this.updateGripCursors(n.getRotationAngle(aw))}};this.updateGripCursors=function(ax){var aw=[];var au=Math.round(ax/45);if(au<0){au+=8}for(dir in this.selectorGrips){aw.push(dir)}while(au>0){aw.push(aw.shift());au--}var av=0;for(dir in this.selectorGrips){this.selectorGrips[dir].setAttribute("style",("cursor:"+aw[av]+"-resize"));av++}};this.resize=function(aD){var au=this.selectorRect;var ax=this.selectorGrips;var aG=this.selectedElement;var aF=parseInt(aG.getAttribute("stroke-width"));var ay=1;if(!isNaN(aF)){ay+=aF/2}if(aG.tagName=="text"){ay+=2}var aE=n.getBBox(this.selectedElement);var av=aD||aE;var aH=av.x-ay,aC=av.y-ay,aA=av.width+(ay<<1),aI=av.height+(ay<<1);var aL=G.suspendRedraw(100);S(au,{x:aH,y:aC,width:aA,height:aI});var az={nw:[aH-3,aC-3],ne:[aH+aA-3,aC-3],sw:[aH-3,aC+aI-3],se:[aH+aA-3,aC+aI-3],n:[aH+aA/2-3,aC-3],w:[aH-3,aC+aI/2-3],e:[aH+aA-3,aC+aI/2-3],s:[aH+aA/2-3,aC+aI-3]};$.each(az,function(aM,aN){S(ax[aM],{x:aN[0],y:aN[1]})});S(this.rotateGripConnector,{x1:aH+aA/2,y1:aC-20,x2:aH+aA/2,y2:aC});S(this.rotateGrip,{cx:aH+aA/2,cy:aC-20});this.selectorGroup.setAttribute("transform","");this.selectorGroup.removeAttribute("transform");var aK=this.selectedElement;var aB=aK.getAttribute("transform");var aJ=n.getRotationAngle(aK);if(aJ){var aw=parseInt(aE.x+aE.width/2);cy=parseInt(aE.y+aE.height/2);this.selectorGroup.setAttribute("transform","rotate("+aJ+" "+aw+","+cy+")")}G.unsuspendRedraw(aL)};this.reset(c)}function ap(){this.selectorParentGroup=null;this.rubberBandBox=null;this.selectors=[];this.selectorMap={};var c=this;this.initGroup=function(){c.selectorParentGroup=g({element:"g",attr:{id:"selectorParentGroup"}});c.selectorMap={};c.selectors=[];c.rubberBandBox=null};this.requestSelector=function(au){if(au==null){return null}var av=this.selectors.length;if(typeof(this.selectorMap[au.id])=="object"){this.selectorMap[au.id].locked=true;return this.selectorMap[au.id]}for(var at=0;at0){r=r.splice(0,ae)}r.push(c);ae=r.length};var ao=function(){if(D.getid){return b("getid",ad)}return q+ad};var U=function(){var c=ao();while(E.getElementById(c)){ad++;c=ao()}return c};var b=function(at,c){if(D[at]){return D[at](this,c)}};var ac=function(aw){if(aw.nodeType==3){aw.nodeValue=aw.nodeValue.replace(/^\s+|\s+$/g,"")}if(aw.nodeType!=1){return}var ax=aw.ownerDocument;var av=aw.parentNode;if(!ax||!av){return}var ay=svgWhiteList[aw.nodeName];if(ay!=undefined){var au=aw.attributes.length;while(au--){var at=aw.attributes.item(au).nodeName;if(ay.indexOf(at)==-1){aw.removeAttribute(at)}}au=aw.childNodes.length;while(au--){ac(aw.childNodes.item(au))}}else{var c=[];while(aw.hasChildNodes()){c.push(av.insertBefore(aw.firstChild,aw))}av.removeChild(aw);var au=c.length;while(au--){ac(c[au])}}};var Q=function(){var au=G.getElementsByTagNameNS(al,"defs");if(!au||!au.length){return}var aB=G.getElementsByTagNameNS(al,"*");var aw=[];$.each(aB,function(aC,aD){var aF=aD.getAttribute("fill");if(aF&&aF.indexOf("url(#")==0){aw.push(aF)}var aE=aD.getAttribute("stroke");if(aE&&aE.indexOf("url(#")==0){aw.push(aE)}});var ay=G.getElementsByTagNameNS(al,"linearGradient");var az=[];var av=ay.length;while(av--){var aA=ay[av];var c=aA.getAttribute("id");var ax="url(#"+c+")";if($.inArray(ax,aw)==-1){aA.parentNode.removeChild(aA)}}var av=au.length;while(av--){var at=au[av];if(!at.getElementsByTagNameNS(al,"*").length){at.parentNode.removeChild(at)}}};var p=function(au,at){var av=new Array();if(au){var aB=au.attributes;var ay;var aw;var az=au.childNodes;for(aw=0;aw=0;aw--){ay=aB.item(aw);if(ay.nodeValue!=""){if(window.opera&&ay.nodeName=="opacity"&&/^\d+,\d+$/.test(ay.nodeValue)){ay.nodeValue=ay.nodeValue.replace(",",".")}av.push(" ");av.push(ay.nodeName);av.push('="');av.push(ay.nodeValue);av.push('"')}}if(au.hasChildNodes()){av.push(">");at++;var ax=false;for(aw=0;aw");break}}at--;if(!ax){av.push("\n");for(aw=0;aw")}else{av.push("/>")}}return av.join("")};var ab=function(){var av=(af=="none"?"position":"size");var c=new H(av);var at=d.length;while(at--){var au=ak(at);if(au){c.addSubCommand(au)}}if(!c.isEmpty()){I(c);b("changed",d)}};var J=[0,"z","m","m","l","l","c","c","q","q","a","a","l","l","l","l","s","s","t","t"];var ak=function(ba){var aQ=d[ba];if(aQ==null){return null}var aD=P[ba];var aA=n.getBBox(aQ);if(aA.x==aD.x&&aA.y==aD.y&&aA.width==aD.width&&aA.height==aD.height){return null}var a4=function(bf,bg){return{x:parseInt(((bf-aA.x)/aA.width)*aD.width+aD.x),y:parseInt(((bg-aA.y)/aA.height)*aD.height+aD.y)}};var aG=function(bf){return parseInt(bf*aD.width/aA.width)};var aP=function(bf){return parseInt(bf*aD.height/aA.height)};var aN={};var aH=n.getRotationAngle(aQ);var aX=document.getElementById("polypointgrip_container");if(aH){var ay=parseInt(aA.x+aA.width/2),ax=parseInt(aA.y+aA.height/2);var aM=null,aK=null;var at=false;var aY=aQ.transform.baseVal;var a1=aY.numberOfItems;while(a1--){var a6=aY.getItem(a1);if(a6.type==3){at=true;break}}if(at){var a7=aH*Math.PI/180;var av=aD.x-ay,au=aD.y-ax,a2=Math.sqrt(av*av+au*au),aJ=Math.atan2(au,av)+a7;var aw=a2*Math.cos(aJ)+ay,az=a2*Math.sin(aJ)+ax;av+=aD.width;au+=aD.height;a2=Math.sqrt(av*av+au*au);aJ=Math.atan2(au,av)+a7;var a5=a2*Math.cos(aJ)+ay,c=a2*Math.sin(aJ)+ax;aM=parseInt(aw+(a5-aw)/2);aK=parseInt(az+(c-az)/2);aD.x=parseInt(aM-aD.width/2),aD.y=parseInt(aK-aD.height/2)}else{var a9=aD.x-aA.x,a8=aD.y-aA.y;aM=ay+a9;aK=ax+a8}var bb=["rotate(",aH," ",aM,",",aK,")"].join("");aQ.setAttribute("transform",bb);if(aX){aX.setAttribute("transform",bb)}}else{aQ.setAttribute("transform","");aQ.removeAttribute("transform");if(aX){aX.setAttribute("transform","");aX.removeAttribute("transform")}}switch(aQ.tagName){case"polygon":case"polyline":aN.points=aQ.getAttribute("points");var aL=aQ.points;var aI=aL.numberOfItems;var a3="";for(var ba=0;ba0&&(B-ag)>0){aB=g({element:"ellipse",attr:{cx:(ai+C)/2,cy:(ag+B)/2,rx:(C-ai)/2,ry:(B-ag)/2,id:ao(),fill:e.fill,stroke:e.stroke,"stroke-width":e.stroke_width,"stroke-dasharray":e.stroke_style,opacity:e.opacity,"stroke-opacity":e.stroke_opacity,"fill-opacity":e.fill_opacity}});b("changed",[aB]);au=true}break;case"fhrect":if((C-ai)>0&&(B-ag)>0){aB=g({element:"rect",attr:{x:ai,y:ag,width:(C-ai),height:(B-ag),id:ao(),fill:e.fill,stroke:e.stroke,"stroke-width":e.stroke_width,"stroke-dasharray":e.stroke_style,opacity:e.opacity,"stroke-opacity":e.stroke_opacity,"fill-opacity":e.fill_opacity}});b("changed",[aB]);au=true}break;case"text":au=true;n.clearSelection();break;case"poly":aB=null;ar=true;var aH=document.getElementById("poly_stretch_line");if(!aH){aH=document.createElementNS(al,"line");S(aH,{id:"poly_stretch_line",stroke:"blue","stroke-width":"0.5"});aH=document.getElementById("selectorParentGroup").appendChild(aH)}aH.setAttribute("display","inline");if(z.length==0){z.push(aR);z.push(aQ);am="M"+aR+","+aQ+" ";g({element:"path",attr:{d:am,id:U(),fill:e.fill,"fill-opacity":e.fill_opacity,stroke:e.stroke,"stroke-width":e.stroke_width,"stroke-dasharray":e.stroke_style,"stroke-opacity":e.stroke_opacity,opacity:e.opacity/2}});S(aH,{x1:aR,y1:aQ,x2:aR,y2:aQ});f(aR,aQ,0)}else{var a0=z.length;var aL=6;var aA=false;while(a0){a0-=2;var az=z[a0],ay=z[a0+1];if(aR>=(az-aL)&&aR<=(az+aL)&&aQ>=(ay-aL)&&aQ<=(ay+aL)){aA=true;break}}var aM=E.getElementById(ao());if(aA){if(a0==0&&z.length>=6){aM.setAttribute("d",am+"z")}ah();aB=aM;z=[];ar=false}else{var aF=z.length;var aX=z[aF-2],aW=z[aF-1];z.push(aR);z.push(aQ);am+="l"+parseInt(aR-aX)+","+parseInt(aQ-aW)+" ";aM.setAttribute("d",am);S(aH,{x1:aR,y1:aQ,x2:aR,y2:aQ});f(aR,aQ,(z.length/2-1))}au=true}break;case"polyedit":au=true;aB=null;if(w!=-1){w=-1;var at=new H("Edit Poly");var a4={};a4.d=s;var aE=n.getRotationAngle(v)*Math.PI/180;if(aE){var ax=n.getBBox(v);var a2=P[0];var aV=parseInt(a2.x+a2.width/2),aU=parseInt(a2.y+a2.height/2),c=parseInt(ax.x+ax.width/2),a5=parseInt(ax.y+ax.height/2);var aw=c-aV,av=a5-aU;var aT=Math.sqrt(aw*aw+av*av);var aG=Math.atan2(av,aw)+aE;c=parseInt(aT*Math.cos(aG)+aV);a5=parseInt(aT*Math.sin(aG)+aU);var a0=z.length;while(a0){a0-=2;aw=z[a0]-aV;av=z[a0+1]-aU;aT=Math.sqrt(aw*aw+av*av);aG=Math.atan2(av,aw)+aE;z[a0]=aw=aT*Math.cos(aG)+aV;z[a0+1]=av=aT*Math.sin(aG)+aU;aw-=c;av-=a5;aT=Math.sqrt(aw*aw+av*av);aG=Math.atan2(av,aw)-aE;z[a0]=parseInt(aT*Math.cos(aG)+c);z[a0+1]=parseInt(aT*Math.sin(aG)+a5)}var aD=v.getAttribute("d");var a3=(aD[aD.length-1]=="z"||aD[aD.length-1]=="Z");var aF=z.length/2;var aC=new Array(aF+1);var aO=z[0],aN=z[1];aC[0]=["M",aO,",",aN].join("");S(document.getElementById("polypointgrip_0"),{cx:aO,cy:aN},100);for(var aZ=1;aZ0){var at=E.getElementById(ao());at.parentNode.removeChild(at);n.clearPoly();n.clearSelection();ar=false}else{if(aj=="polyedit"){n.clearPoly()}}l=(d[0]&&d[0].nodeName=="text")?A:e;aj=c};this.getStrokeColor=function(){return l.stroke};this.setStrokeColor=function(at,c){e.stroke=at;l.stroke_paint={type:"solidColor"};if(!c){this.changeSelectedAttribute("stroke",at)}else{this.changeSelectedAttributeNoUndo("stroke",at)}};this.getFillColor=function(){return l.fill};this.setFillColor=function(aw,at){l.fill=aw;l.fill_paint={type:"solidColor"};var c=[];var au=d.length;while(au--){var av=d[au];if(av&&av.tagName!="polyline"&&av.tagName!="line"){c.push(av)}}if(c.length>0){if(!at){this.changeSelectedAttribute("fill",aw,c)}else{this.changeSelectedAttributeNoUndo("fill",aw,c)}}};var y=function(){var c=G.getElementsByTagNameNS(al,"defs");if(c.length>0){c=c[0]}else{c=G.insertBefore(E.createElementNS(al,"defs"),G.firstChild.nextSibling)}return c};var L=function(){$.each(["stroke","fill"],function(au,av){if(!l[av+"_paint"]||l[av+"_paint"].type=="solidColor"){return}var ax=n[av+"Grad"];var aw=t(ax);var c=y();if(!aw){ax=c.appendChild(E.importNode(ax,true));ax.id=U()}else{ax=aw}var at=av=="fill"?"Fill":"Stroke";n["set"+at+"Color"]("url(#"+ax.id+")")})};var t=function(ax){var au=y();var ay=au.getElementsByTagNameNS(al,"linearGradient");var av=ay.length;while(av--){var az=ay.item(av);if(ax.getAttribute("x1")!=az.getAttribute("x1")||ax.getAttribute("y1")!=az.getAttribute("y1")||ax.getAttribute("x2")!=az.getAttribute("x2")||ax.getAttribute("y2")!=az.getAttribute("y2")){continue}var aA=ax.getElementsByTagNameNS(al,"stop");var aB=az.getElementsByTagNameNS(al,"stop");if(aA.length!=aB.length){continue}var at=aA.length;while(at--){var aw=aA.item(at);var c=aB.item(at);if(aw.getAttribute("offset")!=c.getAttribute("offset")||aw.getAttribute("stop-opacity")!=c.getAttribute("stop-opacity")||aw.getAttribute("stop-color")!=c.getAttribute("stop-color")){break}}if(at==-1){return az}}return null};this.setStrokePaint=function(at,c){var at=new $.jGraduate.Paint(at);this.setStrokeOpacity(at.alpha/100);l.stroke_paint=at;if(at.type=="solidColor"){this.setStrokeColor("#"+at.solidColor)}else{if(at.type=="linearGradient"){n.strokeGrad=at.linearGradient;if(c){L()}}else{}}};this.setFillPaint=function(at,c){var at=new $.jGraduate.Paint(at);this.setFillOpacity(at.alpha/100,true);l.fill_paint=at;if(at.type=="solidColor"){this.setFillColor("#"+at.solidColor)}else{if(at.type=="linearGradient"){n.fillGrad=at.linearGradient;if(c){L()}}else{}}};this.getStrokeWidth=function(){return l.stroke_width};this.setStrokeWidth=function(c){if(c==0&&$.inArray(aj,["line","path"])==-1){n.setStrokeWidth(1)}l.stroke_width=c;this.changeSelectedAttribute("stroke-width",c)};this.getStrokeStyle=function(){return e.stroke_style};this.setStrokeStyle=function(c){e.stroke_style=c;this.changeSelectedAttribute("stroke-dasharray",c)};this.getOpacity=function(){return e.opacity};this.setOpacity=function(c){e.opacity=c;this.changeSelectedAttribute("opacity",c)};this.getFillOpacity=function(){return e.fill_opacity};this.setFillOpacity=function(at,c){e.fill_opacity=at;if(!c){this.changeSelectedAttribute("fill-opacity",at)}else{this.changeSelectedAttributeNoUndo("fill-opacity",at)}};this.getStrokeOpacity=function(){return e.stroke_opacity};this.setStrokeOpacity=function(at,c){e.stroke_opacity=at;if(!c){this.changeSelectedAttribute("stroke-opacity",at)}else{this.changeSelectedAttributeNoUndo("stroke-opacity",at)}};this.getBBox=function(au){var at=au||d[0];if(au.nodeName=="text"&&at.textContent==""){at.textContent="a";var c=at.getBBox();at.textContent=""}else{var c=at.getBBox()}return c};this.getRotationAngle=function(aw){var av=aw||d[0];var ax=av.transform.baseVal;var au=ax.numberOfItems;var at=false;while(au--){var c=ax.getItem(au);if(c.type==4){return c.angle}}return 0};this.setRotationAngle=function(ay,at){var av=d[0];var ax=av.getBBox();var c=parseInt(ax.x+ax.width/2),az=parseInt(ax.y+ax.height/2);var au="rotate("+ay+" "+c+","+az+")";if(at){this.changeSelectedAttributeNoUndo("transform",au,d)}else{this.changeSelectedAttribute("transform",au,d)}var aw=document.getElementById("polypointgrip_container");if(av.nodeName=="path"&&aw){aw.setAttribute("transform",au)}N.requestSelector(d[0]).updateGripCursors(ay)};this.each=function(c){$(G).children().each(c)};this.bind=function(at,au){var c=D[at];D[at]=au;return c};this.setIdPrefix=function(c){q=c};this.getBold=function(){var c=d[0];if(c!=null&&c.tagName=="text"&&d[1]==null){return(c.getAttribute("font-weight")=="bold")}return false};this.setBold=function(c){var at=d[0];if(at!=null&&at.tagName=="text"&&d[1]==null){this.changeSelectedAttribute("font-weight",c?"bold":"normal")}};this.getItalic=function(){var c=d[0];if(c!=null&&c.tagName=="text"&&d[1]==null){return(c.getAttribute("font-style")=="italic")}return false};this.setItalic=function(c){var at=d[0];if(at!=null&&at.tagName=="text"&&d[1]==null){this.changeSelectedAttribute("font-style",c?"italic":"normal")}};this.getFontFamily=function(){return A.font_family};this.setFontFamily=function(c){A.font_family=c;this.changeSelectedAttribute("font-family",c)};this.getFontSize=function(){return A.font_size};this.setFontSize=function(c){A.font_size=c;this.changeSelectedAttribute("font-size",c)};this.getText=function(){var c=d[0];if(c==null){return""}return c.textContent};this.setTextContent=function(c){this.changeSelectedAttribute("#text",c)};this.setRectRadius=function(au){var c=d[0];if(c!=null&&c.tagName=="rect"){var at=c.getAttribute("rx");if(at!=au){c.setAttribute("rx",au);c.setAttribute("ry",au);I(new V(c,{rx:at,ry:at},"Radius"));b("changed",[c])}}};this.quickClone=function(c){if(navigator.userAgent.indexOf("Gecko/")==-1){return c}var at=c.cloneNode(true);c.parentNode.insertBefore(at,c);c.parentNode.removeChild(c);n.clearSelection();n.addToSelection([at],true);return at};var m=-1;var F=[];this.beginUndoableChange=function(av,at){var ay=++m;var au=at.length;var c=new Array(au),ax=new Array(au);while(au--){var aw=at[au];if(aw==null){continue}ax[au]=aw;c[au]=aw.getAttribute(av)}F[ay]={attrName:av,oldValues:c,elements:ax}};this.changeSelectedAttributeNoUndo=function(aB,at,c){var aA=G.suspendRedraw(1000);var c=c||d;var az=c.length;while(az--){var au=c[az];if(au==null){continue}var aC=aB=="#text"?au.textContent:au.getAttribute(aB);if(aC==null){aC=""}if(aC!=at){if(aB=="#text"){au.textContent=at;au=n.quickClone(au)}else{au.setAttribute(aB,at)}P[az]=this.getBBox(au);if(au.nodeName=="text"){if((at+"").indexOf("url")==0||$.inArray(aB,["font-size","font-family","x","y"])!=-1){au=n.quickClone(au)}}setTimeout(function(){N.requestSelector(au).resize(P[az])},0);var aw=n.getRotationAngle(au);if(aw&&aB!="transform"){var ax=parseInt(P[az].x+P[az].width/2),av=parseInt(P[az].y+P[az].height/2);var ay=["rotate(",aw," ",ax,",",av,")"].join("");if(ay!=au.getAttribute("transform")){au.setAttribute("transform",ay)}}}}G.unsuspendRedraw(aA);b("changed",c)};this.finishUndoableChange=function(){var ax=m--;var ay=F[ax];var au=ay.elements.length;var at=ay.attrName;var c=new H("Change "+at);while(au--){var aw=ay.elements[au];if(aw==null){continue}var av={};av[at]=ay.oldValues[au];if(av[at]!=aw.getAttribute(at)){c.addSubCommand(new V(aw,av,at))}}F[ax]=null;return c};this.changeSelectedAttribute=function(c,aw,au){var au=au||d;n.beginUndoableChange(c,au);var av=au.length;n.changeSelectedAttributeNoUndo(c,aw,au);var at=n.finishUndoableChange();if(!at.isEmpty()){I(at)}};$(W).mouseup(k);$(W).mousedown(o);$(W).mousemove(u);this.deleteSelectedElements=function(){var au=new H("Delete Elements");var at=d.length;var c=[];for(var aw=0;aw=aw.length){c=0}else{if(c<0){c=aw.length-1}}av=aw[c];break}}}n.clearSelection();n.addToSelection([av],true);b("selected",d)};var X=function(){r=[];ae=0};this.getUndoStackSize=function(){return ae};this.getRedoStackSize=function(){return r.length-ae};this.getNextUndoCommandText=function(){if(ae>0){return r[ae-1].text}return""};this.getNextRedoCommandText=function(){if(ae0){this.clearSelection();ah();var c=r[--ae];c.unapply();b("changed",c.elements())}};this.redo=function(){if(ae0){this.clearSelection();var c=r[ae++];c.apply();b("changed",c.elements())}};this.cloneSelectedElements=function(){var at=new H("Clone Elements");var c=d.length;for(var au=0;auaK){aK=aD}if(aC>aH){aH=aC}}aA[aQ].x=aL;aA[aQ].y=aI;aA[aQ].width=aK-aL;aA[aQ].height=aH-aI}switch(aE){case"smallest":if((ax=="l"||ax=="c"||ax=="r")&&(aJ==Number.MIN_VALUE||aJ>aA[aQ].width)||(ax=="t"||ax=="m"||ax=="b")&&(aP==Number.MIN_VALUE||aP>aA[aQ].height)){az=aA[aQ].x;aw=aA[aQ].y;ay=aA[aQ].x+aA[aQ].width;av=aA[aQ].y+aA[aQ].height;aJ=aA[aQ].width;aP=aA[aQ].height}break;case"largest":if((ax=="l"||ax=="c"||ax=="r")&&(aJ==Number.MIN_VALUE||aJay){ay=aA[aQ].x+aA[aQ].width}if(aA[aQ].y+aA[aQ].height>av){av=aA[aQ].y+aA[aQ].height}break}}if(aE=="page"){az=0;aw=0;ay=G.getAttribute("width");av=G.getAttribute("height")}var aG=new Array(aR);var aF=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(cb.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}}; \ No newline at end of file