changeset 481:6b4e6a08cae7

svg-edit: missing modules added
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Sun, 31 Jan 2010 19:33:31 +0100
parents 1ef31d76eb88
children f03ce96a614d
files htdocs/svg-edit/build/yuicompressor.jar htdocs/svg-edit/docs/files/svgcanvas-js.html htdocs/svg-edit/docs/index.html htdocs/svg-edit/docs/index/Files.html htdocs/svg-edit/docs/index/Functions.html htdocs/svg-edit/docs/index/General.html htdocs/svg-edit/docs/javascript/main.js htdocs/svg-edit/docs/javascript/searchdata.js htdocs/svg-edit/docs/search/FilesS.html htdocs/svg-edit/docs/search/FunctionsA.html htdocs/svg-edit/docs/search/FunctionsC.html htdocs/svg-edit/docs/search/FunctionsD.html htdocs/svg-edit/docs/search/FunctionsG.html htdocs/svg-edit/docs/search/FunctionsM.html htdocs/svg-edit/docs/search/FunctionsO.html htdocs/svg-edit/docs/search/FunctionsR.html htdocs/svg-edit/docs/search/FunctionsS.html htdocs/svg-edit/docs/search/GeneralA.html htdocs/svg-edit/docs/search/GeneralC.html htdocs/svg-edit/docs/search/GeneralD.html htdocs/svg-edit/docs/search/GeneralF.html htdocs/svg-edit/docs/search/GeneralG.html htdocs/svg-edit/docs/search/GeneralL.html htdocs/svg-edit/docs/search/GeneralM.html htdocs/svg-edit/docs/search/GeneralO.html htdocs/svg-edit/docs/search/GeneralR.html htdocs/svg-edit/docs/search/GeneralS.html htdocs/svg-edit/docs/search/NoResults.html htdocs/svg-edit/docs/styles/main.css htdocs/svg-edit/editor/embedapi.js htdocs/svg-edit/editor/images/README.txt htdocs/svg-edit/editor/images/align-bottom.png htdocs/svg-edit/editor/images/align-bottom.svg htdocs/svg-edit/editor/images/align-center.png htdocs/svg-edit/editor/images/align-center.svg htdocs/svg-edit/editor/images/align-left.png htdocs/svg-edit/editor/images/align-left.svg htdocs/svg-edit/editor/images/align-middle.png htdocs/svg-edit/editor/images/align-middle.svg htdocs/svg-edit/editor/images/align-right.png htdocs/svg-edit/editor/images/align-right.svg htdocs/svg-edit/editor/images/align-top.png htdocs/svg-edit/editor/images/align-top.svg htdocs/svg-edit/editor/images/bold.png htdocs/svg-edit/editor/images/cancel.png htdocs/svg-edit/editor/images/circle.png htdocs/svg-edit/editor/images/clear.png htdocs/svg-edit/editor/images/clone.png htdocs/svg-edit/editor/images/copy.png htdocs/svg-edit/editor/images/cut.png htdocs/svg-edit/editor/images/delete.png htdocs/svg-edit/editor/images/document-properties.png htdocs/svg-edit/editor/images/dropdown.gif htdocs/svg-edit/editor/images/ellipse.png htdocs/svg-edit/editor/images/eye.png htdocs/svg-edit/editor/images/fhpath.png htdocs/svg-edit/editor/images/flyouth.png htdocs/svg-edit/editor/images/flyup.gif htdocs/svg-edit/editor/images/freehand-circle.png htdocs/svg-edit/editor/images/freehand-square.png htdocs/svg-edit/editor/images/go-down.png htdocs/svg-edit/editor/images/go-up.png htdocs/svg-edit/editor/images/image.png htdocs/svg-edit/editor/images/italic.png htdocs/svg-edit/editor/images/line.png htdocs/svg-edit/editor/images/link_controls.png htdocs/svg-edit/editor/images/logo.png htdocs/svg-edit/editor/images/logo.svg htdocs/svg-edit/editor/images/move_bottom.png htdocs/svg-edit/editor/images/move_top.png htdocs/svg-edit/editor/images/none.png htdocs/svg-edit/editor/images/open.png htdocs/svg-edit/editor/images/paste.png htdocs/svg-edit/editor/images/path.png htdocs/svg-edit/editor/images/polygon.png htdocs/svg-edit/editor/images/polygon.svg htdocs/svg-edit/editor/images/rect.png htdocs/svg-edit/editor/images/redo.png htdocs/svg-edit/editor/images/reorient.png htdocs/svg-edit/editor/images/rotate.png htdocs/svg-edit/editor/images/save.png htdocs/svg-edit/editor/images/select.png htdocs/svg-edit/editor/images/select_node.png htdocs/svg-edit/editor/images/sep.png htdocs/svg-edit/editor/images/shape_group.png htdocs/svg-edit/editor/images/shape_ungroup.png htdocs/svg-edit/editor/images/source.png htdocs/svg-edit/editor/images/spinbtn_updn_big.png htdocs/svg-edit/editor/images/square.png htdocs/svg-edit/editor/images/svg_edit_icons.svg htdocs/svg-edit/editor/images/svg_edit_icons.svgz htdocs/svg-edit/editor/images/text.png htdocs/svg-edit/editor/images/text.svg htdocs/svg-edit/editor/images/to_path.png htdocs/svg-edit/editor/images/undo.png htdocs/svg-edit/editor/images/view-refresh.png htdocs/svg-edit/editor/images/wave.png htdocs/svg-edit/editor/images/wireframe.png htdocs/svg-edit/editor/images/zoom.png htdocs/svg-edit/editor/jgraduate/LICENSE htdocs/svg-edit/editor/jgraduate/README htdocs/svg-edit/editor/jgraduate/css/jGraduate-0.2.0.css htdocs/svg-edit/editor/jgraduate/images/Bars.png htdocs/svg-edit/editor/jgraduate/images/Maps.png htdocs/svg-edit/editor/jgraduate/images/bar-opacity.png htdocs/svg-edit/editor/jgraduate/images/map-opacity.png htdocs/svg-edit/editor/jgraduate/images/mappoint.gif htdocs/svg-edit/editor/jgraduate/images/picker.gif htdocs/svg-edit/editor/jgraduate/images/preview-opacity.png htdocs/svg-edit/editor/jgraduate/images/rangearrows.gif htdocs/svg-edit/editor/jgraduate/images/rangearrows2.gif htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.js htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.min.js htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.7.2.custom.min.js htdocs/svg-edit/editor/jquery.js htdocs/svg-edit/editor/js-hotkeys/README.md htdocs/svg-edit/editor/js-hotkeys/jquery.hotkeys.min.js htdocs/svg-edit/editor/locale/README.txt htdocs/svg-edit/editor/locale/lang.af.js htdocs/svg-edit/editor/locale/lang.ar.js htdocs/svg-edit/editor/locale/lang.az.js htdocs/svg-edit/editor/locale/lang.be.js htdocs/svg-edit/editor/locale/lang.bg.js htdocs/svg-edit/editor/locale/lang.ca.js htdocs/svg-edit/editor/locale/lang.cs.js htdocs/svg-edit/editor/locale/lang.cy.js htdocs/svg-edit/editor/locale/lang.da.js htdocs/svg-edit/editor/locale/lang.de.js htdocs/svg-edit/editor/locale/lang.el.js htdocs/svg-edit/editor/locale/lang.en.js htdocs/svg-edit/editor/locale/lang.es.js htdocs/svg-edit/editor/locale/lang.et.js htdocs/svg-edit/editor/locale/lang.fa.js htdocs/svg-edit/editor/locale/lang.fi.js htdocs/svg-edit/editor/locale/lang.fr.js htdocs/svg-edit/editor/locale/lang.ga.js htdocs/svg-edit/editor/locale/lang.gl.js htdocs/svg-edit/editor/locale/lang.hi.js htdocs/svg-edit/editor/locale/lang.hr.js htdocs/svg-edit/editor/locale/lang.hu.js htdocs/svg-edit/editor/locale/lang.hy.js htdocs/svg-edit/editor/locale/lang.id.js htdocs/svg-edit/editor/locale/lang.is.js htdocs/svg-edit/editor/locale/lang.it.js htdocs/svg-edit/editor/locale/lang.ja.js htdocs/svg-edit/editor/locale/lang.ko.js htdocs/svg-edit/editor/locale/lang.lt.js htdocs/svg-edit/editor/locale/lang.lv.js htdocs/svg-edit/editor/locale/lang.mk.js htdocs/svg-edit/editor/locale/lang.ms.js htdocs/svg-edit/editor/locale/lang.mt.js htdocs/svg-edit/editor/locale/lang.nl.js htdocs/svg-edit/editor/locale/lang.no.js htdocs/svg-edit/editor/locale/lang.pl.js htdocs/svg-edit/editor/locale/lang.pt-PT.js htdocs/svg-edit/editor/locale/lang.ro.js htdocs/svg-edit/editor/locale/lang.ru.js htdocs/svg-edit/editor/locale/lang.sk.js htdocs/svg-edit/editor/locale/lang.sl.js htdocs/svg-edit/editor/locale/lang.sq.js htdocs/svg-edit/editor/locale/lang.sr.js htdocs/svg-edit/editor/locale/lang.sv.js htdocs/svg-edit/editor/locale/lang.sw.js htdocs/svg-edit/editor/locale/lang.th.js htdocs/svg-edit/editor/locale/lang.tl.js htdocs/svg-edit/editor/locale/lang.tr.js htdocs/svg-edit/editor/locale/lang.uk.js htdocs/svg-edit/editor/locale/lang.vi.js htdocs/svg-edit/editor/locale/lang.yi.js htdocs/svg-edit/editor/locale/lang.zh-CN.js htdocs/svg-edit/editor/locale/lang.zh-TW.js htdocs/svg-edit/editor/locale/lang.zh.js htdocs/svg-edit/editor/locale/locale.js htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.css htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.js htdocs/svg-edit/editor/spinbtn/JQuerySpinBtn.min.js htdocs/svg-edit/editor/spinbtn/spinbtn_updn.png htdocs/svg-edit/editor/svg-editor.css htdocs/svg-edit/editor/svg-editor.html htdocs/svg-edit/editor/svg-editor.js htdocs/svg-edit/editor/svg-editor.manifest htdocs/svg-edit/editor/svgcanvas.js htdocs/svg-edit/editor/svgicons/jquery.svgicons.js htdocs/svg-edit/extras/server-save/README htdocs/svg-edit/extras/server-save/svg-editor-save.js htdocs/svg-edit/extras/server-save/svg-editor-save.php htdocs/svg-edit/firefox-extension/chrome.manifest htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.css htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.js htdocs/svg-edit/firefox-extension/content/svg-edit-overlay.xul htdocs/svg-edit/firefox-extension/handlers.js htdocs/svg-edit/firefox-extension/install.rdf htdocs/svg-edit/opera-widget/config.xml htdocs/svg-edit/opera-widget/handlers.js htdocs/svg-edit/opera-widget/index.html htdocs/svg-edit/opera-widget/style.css htdocs/svg-edit/wave/json2.js htdocs/svg-edit/wave/manifest.xml htdocs/svg-edit/wave/svg-edit.xml htdocs/svg-edit/wave/wave.js
diffstat 200 files changed, 29370 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file htdocs/svg-edit/build/yuicompressor.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/files/svgcanvas-js.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>/Users/jschill1/Documents/svg-edit/editor/svgcanvas.js</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="svgcanvas.js"></a>svgcanvas.js</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#svgcanvas.js" >svgcanvas.js</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Selection" >Selection</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#clearSelection" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">clearSelection</a></td><td class=SDescription>Clears the selection. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#addToSelection" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">addToSelection</a></td><td class=SDescription>Adds a list of elements to the selection. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#removeFromSelection" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">removeFromSelection</a></td><td class=SDescription>Removes elements from the selection.</td></tr><tr class="SGroup"><td class=SEntry><a href="#Serialization" >Serialization</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#open" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">open</a></td><td class=SDescription>Calls the &lsquo;opened&rsquo; handler and sends the SVG XML text. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#save" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">save</a></td><td class=SDescription>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#getSvgString" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">getSvgString</a></td><td class=SDescription>Returns the current drawing as raw SVG XML text.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#setSvgString" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">setSvgString</a></td><td class=SDescription>This function sets the current drawing as the input SVG XML.</td></tr><tr class="SGroup"><td class=SEntry><a href="#Layers" >Layers</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#createLayer" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">createLayer</a></td><td class=SDescription>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#deleteCurrentLayer" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">deleteCurrentLayer</a></td><td class=SDescription>Deletes the current layer from the drawing and then clears the selection. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#getNumLayers" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">getNumLayers</a></td><td class=SDescription>Returns the number of layers in the current drawing.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#getLayer" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">getLayer</a></td><td class=SDescription>Returns the name of the ith layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#getCurrentLayer" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">getCurrentLayer</a></td><td class=SDescription>Returns the name of the currently selected layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#setCurrentLayer" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">setCurrentLayer</a></td><td class=SDescription>Sets the current layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#renameCurrentLayer" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">renameCurrentLayer</a></td><td class=SDescription>Renames the current layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#setCurrentLayerPosition" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">setCurrentLayerPosition</a></td><td class=SDescription>Changes the position of the current layer to the new value. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#getLayerVisibility" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">getLayerVisibility</a></td><td class=SDescription>Returns whether the layer is visible. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#setLayerVisibility" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">setLayerVisibility</a></td><td class=SDescription>Sets the visibility of the layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#moveSelectedToLayer" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">moveSelectedToLayer</a></td><td class=SDescription>Moves the selected elements to layername. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#getLayerOpacity" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">getLayerOpacity</a></td><td class=SDescription>Returns the opacity of the given layer. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#setLayerOpacity" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">setLayerOpacity</a></td><td class=SDescription>Sets the opacity of the given layer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#clear" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">clear</a></td><td class=SDescription>Clears the current document. </td></tr><tr class="SGroup"><td class=SEntry><a href="#Fill_and_Stroke" >Fill and Stroke</a></td><td class=SDescription></td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Selection"></a>Selection</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="clearSelection"></a>clearSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clearSelection = function()</td></tr></table></blockquote><p>Clears the selection.&nbsp;  The &lsquo;selected&rsquo; handler is then called.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="addToSelection"></a>addToSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a list of elements to the selection.&nbsp;  The &lsquo;selected&rsquo; handler is then called.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elemsToAdd</td><td class=CDLDescription>an array of DOM elements to add to the selection</td></tr><tr><td class=CDLEntry>showGrips</td><td class=CDLDescription>a boolean flag indicating whether the resize grips should be shown</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="removeFromSelection"></a>removeFromSelection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes elements from the selection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>elemsToRemove</td><td class=CDLDescription>an array of elements to remove from selection</td></tr></table></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Serialization"></a>Serialization</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="open"></a>open</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.open = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls the &lsquo;opened&rsquo; handler and sends the SVG XML text.&nbsp;  Clients of the SvgCanvas bind their load function (typically calls to setSvgString() to the &lsquo;opened&rsquo; event.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="save"></a>save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.save = function()</td></tr></table></blockquote><p>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler.&nbsp; This function also includes the XML prolog.&nbsp;  Clients of the SvgCanvas bind their save function to the &lsquo;saved&rsquo; event.</p><h4 class=CHeading>Returns</h4><p>Nothing</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getSvgString"></a>getSvgString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote><p>Returns the current drawing as raw SVG XML text.</p><h4 class=CHeading>Returns</h4><p>The current drawing as raw SVG XML text.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setSvgString"></a>setSvgString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>This function sets the current drawing as the input SVG XML.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>xmlString</td><td class=CDLDescription>The SVG as XML text.</td></tr></table><h4 class=CHeading>Returns</h4><p>This function returns false if the set was unsuccessful, true otherwise.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Layers"></a>Layers</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="createLayer"></a>createLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler.&nbsp; This is an undoable action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>The given name</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="deleteCurrentLayer"></a>deleteCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote><p>Deletes the current layer from the drawing and then clears the selection.&nbsp; This function then calls the &lsquo;changed&rsquo; handler.&nbsp;  This is an undoable action.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getNumLayers"></a>getNumLayers</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote><p>Returns the number of layers in the current drawing.</p><h4 class=CHeading>Returns</h4><p>The number of layers in the current drawing.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getLayer"></a>getLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the name of the ith layer.&nbsp; If the index is out of range, an empty string is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>i</td><td class=CDLDescription>the zero-based index of the layer you are querying.</td></tr></table><h4 class=CHeading>Returns</h4><p>The name of the ith layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getCurrentLayer"></a>getCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote><p>Returns the name of the currently selected layer.&nbsp; If an error occurs, an empty string is returned.</p><h4 class=CHeading>Returns</h4><p>The name of the currently active layer.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setCurrentLayer"></a>setCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the current layer.&nbsp; If the name is not a valid layer name, then this function returns false.&nbsp; Otherwise it returns true.&nbsp; This is not an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>the name of the layer you want to switch to.</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the current layer was switched, otherwise false</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="renameCurrentLayer"></a>renameCurrentLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Renames the current layer.&nbsp; If the layer name is not valid (i.e. unique), then this function does nothing and returns false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>newname</td><td class=CDLDescription>the new name you want to give the current layer.&nbsp;  This name must be unique among all layer names.</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the rename succeeded, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setCurrentLayerPosition"></a>setCurrentLayerPosition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the position of the current layer to the new value.&nbsp; If the new index is not valid, this function does nothing and returns false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>newpos</td><td class=CDLDescription>The zero-based index of the new position of the layer.&nbsp;  This should be between</td></tr><tr><td class=CDLEntry>0 and (number of layers</td><td class=CDLDescription>1)</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the current layer position was changed, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getLayerVisibility"></a>getLayerVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns whether the layer is visible.&nbsp;  If the layer name is not valid, then this function returns false.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer which you want to query.</td></tr></table><h4 class=CHeading>Returns</h4><p>The visibility state of the layer, or false if the layer name was invalid.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setLayerVisibility"></a>setLayerVisibility</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the visibility of the layer.&nbsp; If the layer name is not valid, this function return false, otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer to change the visibility</td></tr><tr><td class=CDLEntry>bVisible</td><td class=CDLDescription>true/false, whether the layer should be visible</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the layer&rsquo;s visibility was set, false otherwise</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="moveSelectedToLayer"></a>moveSelectedToLayer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the selected elements to layername.&nbsp; If the name is not a valid layer name, then false is returned.&nbsp;  Otherwise it returns true.&nbsp; This is an undo-able action.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>the name of the layer you want to which you want to move the selected elements</td></tr></table><h4 class=CHeading>Returns</h4><p>true if the selected elements were moved to the layer, false otherwise.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="getLayerOpacity"></a>getLayerOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the opacity of the given layer.&nbsp;  If the input name is not a layer, null is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>name of the layer on which to get the opacity</td></tr></table><h4 class=CHeading>Returns</h4><p>The opacity value of the given layer.&nbsp;  This will be a value between 0.0 and 1.0, or null if layername is not a valid layer</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="setLayerOpacity"></a>setLayerOpacity</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the opacity of the given layer.&nbsp;  If the input name is not a layer, nothing happens.&nbsp; This is not an undo-able action.&nbsp;  NOTE: this function exists solely to apply a highlighting/de-emphasis effect to a layer, when it is possible for a user to affect the opacity of a layer, we will need to allow this function to produce an undo-able action.&nbsp; If opacity is not a value between 0.0 and 1.0, then nothing happens.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>layername</td><td class=CDLDescription>name of the layer on which to set the opacity</td></tr><tr><td class=CDLEntry>opacity</td><td class=CDLDescription>a float value in the range 0.0-1.0</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote><p>Clears the current document.&nbsp;  This is not an undoable action.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Fill_and_Stroke"></a>Fill and Stroke</h3></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile id=MSelected>svgcanvas.js</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clearSelection = function()</td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes elements from the selection.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.open = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls the &lsquo;opened&rsquo; handler and sends the SVG XML text. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.save = function()</td></tr></table></blockquote>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote>Returns the current drawing as raw SVG XML text.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function sets the current drawing as the input SVG XML.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote>Returns the number of layers in the current drawing.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name of the ith layer. </div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote>Returns the name of the currently selected layer. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the current layer. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Renames the current layer. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the position of the current layer to the new value. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns whether the layer is visible. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visibility of the layer. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Moves the selected elements to layername. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the opacity of the given layer. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the opacity of the given layer. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,1 @@
+<html><head><meta http-equiv="Refresh" CONTENT="0; URL=files/svgcanvas-js.html"></head></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/Files.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; M &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; <a href="#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#svgcanvas.js"  class=ISymbol>svgcanvas.js</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../files/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Files</div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/Functions.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; B &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; E &middot; F &middot; <a href="#G">G</a> &middot; H &middot; I &middot; J &middot; K &middot; L &middot; <a href="#M">M</a> &middot; N &middot; <a href="#O">O</a> &middot; P &middot; Q &middot; <a href="#R">R</a> &middot; <a href="#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#addToSelection" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>addToSelection</a></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#clear" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>clear</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#clearSelection" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>clearSelection</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#createLayer" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>createLayer</a></td></tr><tr><td class=IHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#deleteCurrentLayer" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>deleteCurrentLayer</a></td></tr><tr><td class=IHeading><a name="G"></a>G</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getCurrentLayer" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>getCurrentLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayer" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>getLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayerOpacity" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>getLayerOpacity</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayerVisibility" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>getLayerVisibility</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getNumLayers" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>getNumLayers</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getSvgString" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>getSvgString</a></td></tr><tr><td class=IHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#moveSelectedToLayer" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>moveSelectedToLayer</a></td></tr><tr><td class=IHeading><a name="O"></a>O</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#open" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>open</a></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#removeFromSelection" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>removeFromSelection</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#renameCurrentLayer" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>renameCurrentLayer</a></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#save" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>save</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayer" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>setCurrentLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayerPosition" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>setCurrentLayerPosition</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setLayerOpacity" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>setLayerOpacity</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setLayerVisibility" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>setLayerVisibility</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setSvgString" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>setSvgString</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clearSelection = function()</td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote>Returns the name of the currently selected layer. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name of the ith layer. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the opacity of the given layer. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns whether the layer is visible. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote>Returns the number of layers in the current drawing.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote>Returns the current drawing as raw SVG XML text.</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Moves the selected elements to layername. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.open = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls the &lsquo;opened&rsquo; handler and sends the SVG XML text. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes elements from the selection.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Renames the current layer. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.save = function()</td></tr></table></blockquote>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the current layer. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the position of the current layer to the new value. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the opacity of the given layer. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visibility of the layer. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function sets the current drawing as the input SVG XML.</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../files/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/index/General.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; B &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; E &middot; <a href="#F">F</a> &middot; <a href="#G">G</a> &middot; H &middot; I &middot; J &middot; K &middot; <a href="#L">L</a> &middot; <a href="#M">M</a> &middot; N &middot; <a href="#O">O</a> &middot; P &middot; Q &middot; <a href="#R">R</a> &middot; <a href="#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#addToSelection" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>addToSelection</a></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#clear" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>clear</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#clearSelection" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>clearSelection</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#createLayer" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>createLayer</a></td></tr><tr><td class=IHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#deleteCurrentLayer" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>deleteCurrentLayer</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#Fill_and_Stroke"  class=ISymbol>Fill and Stroke</a></td></tr><tr><td class=IHeading><a name="G"></a>G</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getCurrentLayer" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>getCurrentLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayer" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>getLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayerOpacity" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>getLayerOpacity</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getLayerVisibility" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>getLayerVisibility</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getNumLayers" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>getNumLayers</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#getSvgString" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>getSvgString</a></td></tr><tr><td class=IHeading><a name="L"></a>L</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#Layers"  class=ISymbol>Layers</a></td></tr><tr><td class=IHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#moveSelectedToLayer" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>moveSelectedToLayer</a></td></tr><tr><td class=IHeading><a name="O"></a>O</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#open" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>open</a></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#removeFromSelection" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>removeFromSelection</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#renameCurrentLayer" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>renameCurrentLayer</a></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#save" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>save</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#Selection"  class=ISymbol>Selection</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#Serialization"  class=ISymbol>Serialization</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayer" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>setCurrentLayer</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayerPosition" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>setCurrentLayerPosition</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setLayerOpacity" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>setLayerOpacity</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setLayerVisibility" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>setLayerVisibility</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#setSvgString" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>setSvgString</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/svgcanvas-js.html#svgcanvas.js"  class=ISymbol>svgcanvas.js</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.addToSelection = function(</td><td class=PParameter nowrap>elemsToAdd,</td></tr><tr><td></td><td class=PParameter nowrap>showGrips</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a list of elements to the selection. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clear = function()</td></tr></table></blockquote>Clears the current document. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.clearSelection = function()</td></tr></table></blockquote>Clears the selection. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.createLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new top-level layer in the drawing with the given name, sets the current layer to it, and then clears the selection  This function then calls the &lsquo;changed&rsquo; handler. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.deleteCurrentLayer = function()</td></tr></table></blockquote>Deletes the current layer from the drawing and then clears the selection. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getCurrentLayer = function()</td></tr></table></blockquote>Returns the name of the currently selected layer. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayer = function(</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name of the ith layer. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerOpacity = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the opacity of the given layer. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.getLayerVisibility = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns whether the layer is visible. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getNumLayers = function()</td></tr></table></blockquote>Returns the number of layers in the current drawing.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.getSvgString = function()</td></tr></table></blockquote>Returns the current drawing as raw SVG XML text.</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.moveSelectedToLayer = function(</td><td class=PParameter nowrap>layername</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Moves the selected elements to layername. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.open = function(</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls the &lsquo;opened&rsquo; handler and sends the SVG XML text. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.removeFromSelection = function(</td><td class=PParameter nowrap>elemsToRemove</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes elements from the selection.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.renameCurrentLayer = function(</td><td class=PParameter nowrap>newname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Renames the current layer. </div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>this.save = function()</td></tr></table></blockquote>Serializes the current drawing into SVG XML text and returns it to the &lsquo;saved&rsquo; handler. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayer = function(</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the current layer. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setCurrentLayerPosition = function(</td><td class=PParameter nowrap>newpos</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Changes the position of the current layer to the new value. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerOpacity = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>opacity</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the opacity of the given layer. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setLayerVisibility = function(</td><td class=PParameter nowrap>layername,</td></tr><tr><td></td><td class=PParameter nowrap>bVisible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visibility of the layer. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>this.setSvgString = function(</td><td class=PParameter nowrap>xmlString</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function sets the current drawing as the input SVG XML.</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../files/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/javascript/main.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,836 @@
+// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL
+
+
+//
+//  Browser Styles
+// ____________________________________________________________________________
+
+var agt=navigator.userAgent.toLowerCase();
+var browserType;
+var browserVer;
+
+if (agt.indexOf("opera") != -1)
+    {
+    browserType = "Opera";
+
+    if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
+        {  browserVer = "Opera7";  }
+    else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
+        {  browserVer = "Opera8";  }
+    else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
+        {  browserVer = "Opera9";  }
+    }
+
+else if (agt.indexOf("applewebkit") != -1)
+    {
+    browserType = "Safari";
+
+    if (agt.indexOf("version/3") != -1)
+        {  browserVer = "Safari3";  }
+    else if (agt.indexOf("safari/4") != -1)
+        {  browserVer = "Safari2";  }
+    }
+
+else if (agt.indexOf("khtml") != -1)
+    {
+    browserType = "Konqueror";
+    }
+
+else if (agt.indexOf("msie") != -1)
+    {
+    browserType = "IE";
+
+    if (agt.indexOf("msie 6") != -1)
+        {  browserVer = "IE6";  }
+    else if (agt.indexOf("msie 7") != -1)
+        {  browserVer = "IE7";  }
+    }
+
+else if (agt.indexOf("gecko") != -1)
+    {
+    browserType = "Firefox";
+
+    if (agt.indexOf("rv:1.7") != -1)
+        {  browserVer = "Firefox1";  }
+    else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
+        {  browserVer = "Firefox15";  }
+    else if (agt.indexOf("rv:1.8.1") != -1)
+        {  browserVer = "Firefox2";  }
+    }
+
+
+//
+//  Support Functions
+// ____________________________________________________________________________
+
+
+function GetXPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetLeft;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function GetYPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetTop;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function MoveToPosition(item, x, y)
+    {
+    // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
+
+    if (item.style.left != null)
+        {
+        item.style.left = x + "px";
+        item.style.top = y + "px";
+        }
+    else if (item.style.pixelLeft != null)
+        {
+        item.style.pixelLeft = x;
+        item.style.pixelTop = y;
+        };
+    };
+
+
+//
+//  Menu
+// ____________________________________________________________________________
+
+
+function ToggleMenu(id)
+    {
+    if (!window.document.getElementById)
+        {  return;  };
+
+    var display = window.document.getElementById(id).style.display;
+
+    if (display == "none")
+        {  display = "block";  }
+    else
+        {  display = "none";  }
+
+    window.document.getElementById(id).style.display = display;
+    }
+
+function HideAllBut(ids, max)
+    {
+    if (document.getElementById)
+        {
+        ids.sort( function(a,b) { return a - b; } );
+        var number = 1;
+
+        while (number < max)
+            {
+            if (ids.length > 0 && number == ids[0])
+                {  ids.shift();  }
+            else
+                {
+                document.getElementById("MGroupContent" + number).style.display = "none";
+                };
+
+            number++;
+            };
+        };
+    }
+
+
+//
+//  Tooltips
+// ____________________________________________________________________________
+
+
+var tooltipTimer = 0;
+
+function ShowTip(event, tooltipID, linkID)
+    {
+    if (tooltipTimer)
+        {  clearTimeout(tooltipTimer);  };
+
+    var docX = event.clientX + window.pageXOffset;
+    var docY = event.clientY + window.pageYOffset;
+
+    var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
+
+    tooltipTimer = setTimeout(showCommand, 1000);
+    }
+
+function ReallyShowTip(tooltipID, linkID, docX, docY)
+    {
+    tooltipTimer = 0;
+
+    var tooltip;
+    var link;
+
+    if (document.getElementById)
+        {
+        tooltip = document.getElementById(tooltipID);
+        link = document.getElementById(linkID);
+        }
+/*    else if (document.all)
+        {
+        tooltip = eval("document.all['" + tooltipID + "']");
+        link = eval("document.all['" + linkID + "']");
+        }
+*/
+    if (tooltip)
+        {
+        var left = GetXPosition(link);
+        var top = GetYPosition(link);
+        top += link.offsetHeight;
+
+
+        // The fallback method is to use the mouse X and Y relative to the document.  We use a separate if and test if its a number
+        // in case some browser snuck through the above if statement but didn't support everything.
+
+        if (!isFinite(top) || top == 0)
+            {
+            left = docX;
+            top = docY;
+            }
+
+        // Some spacing to get it out from under the cursor.
+
+        top += 10;
+
+        // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
+        // page.  We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
+
+        if (tooltip.offsetWidth != null)
+            {
+            var width = tooltip.offsetWidth;
+            var docWidth = document.body.clientWidth;
+
+            if (left + width > docWidth)
+                {  left = docWidth - width - 1;  }
+
+            // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
+            if (left < 0)
+                {  left = 0;  };
+            }
+
+        MoveToPosition(tooltip, left, top);
+        tooltip.style.visibility = "visible";
+        }
+    }
+
+function HideTip(tooltipID)
+    {
+    if (tooltipTimer)
+        {
+        clearTimeout(tooltipTimer);
+        tooltipTimer = 0;
+        }
+
+    var tooltip;
+
+    if (document.getElementById)
+        {  tooltip = document.getElementById(tooltipID); }
+    else if (document.all)
+        {  tooltip = eval("document.all['" + tooltipID + "']");  }
+
+    if (tooltip)
+        {  tooltip.style.visibility = "hidden";  }
+    }
+
+
+//
+//  Blockquote fix for IE
+// ____________________________________________________________________________
+
+
+function NDOnLoad()
+    {
+    if (browserVer == "IE6")
+        {
+        var scrollboxes = document.getElementsByTagName('blockquote');
+
+        if (scrollboxes.item(0))
+            {
+            NDDoResize();
+            window.onresize=NDOnResize;
+            };
+        };
+    };
+
+
+var resizeTimer = 0;
+
+function NDOnResize()
+    {
+    if (resizeTimer != 0)
+        {  clearTimeout(resizeTimer);  };
+
+    resizeTimer = setTimeout(NDDoResize, 250);
+    };
+
+
+function NDDoResize()
+    {
+    var scrollboxes = document.getElementsByTagName('blockquote');
+
+    var i;
+    var item;
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = 100;
+        i++;
+        };
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = item.parentNode.offsetWidth;
+        i++;
+        };
+
+    clearTimeout(resizeTimer);
+    resizeTimer = 0;
+    }
+
+
+
+/* ________________________________________________________________________________________________________
+
+    Class: SearchPanel
+    ________________________________________________________________________________________________________
+
+    A class handling everything associated with the search panel.
+
+    Parameters:
+
+        name - The name of the global variable that will be storing this instance.  Is needed to be able to set timeouts.
+        mode - The mode the search is going to work in.  Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
+                   value will be something like "HTML" or "FramedHTML".
+
+    ________________________________________________________________________________________________________
+*/
+
+
+function SearchPanel(name, mode, resultsPath)
+    {
+    if (!name || !mode || !resultsPath)
+        {  alert("Incorrect parameters to SearchPanel.");  };
+
+
+    // Group: Variables
+    // ________________________________________________________________________
+
+    /*
+        var: name
+        The name of the global variable that will be storing this instance of the class.
+    */
+    this.name = name;
+
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: resultsPath
+        The relative path from the current HTML page to the results page directory.
+    */
+    this.resultsPath = resultsPath;
+
+    /*
+        var: keyTimeout
+        The timeout used between a keystroke and when a search is performed.
+    */
+    this.keyTimeout = 0;
+
+    /*
+        var: keyTimeoutLength
+        The length of <keyTimeout> in thousandths of a second.
+    */
+    this.keyTimeoutLength = 500;
+
+    /*
+        var: lastSearchValue
+        The last search string executed, or an empty string if none.
+    */
+    this.lastSearchValue = "";
+
+    /*
+        var: lastResultsPage
+        The last results page.  The value is only relevant if <lastSearchValue> is set.
+    */
+    this.lastResultsPage = "";
+
+    /*
+        var: deactivateTimeout
+
+        The timeout used between when a control is deactivated and when the entire panel is deactivated.  Is necessary
+        because a control may be deactivated in favor of another control in the same panel, in which case it should stay
+        active.
+    */
+    this.deactivateTimout = 0;
+
+    /*
+        var: deactivateTimeoutLength
+        The length of <deactivateTimeout> in thousandths of a second.
+    */
+    this.deactivateTimeoutLength = 200;
+
+
+
+
+    // Group: DOM Elements
+    // ________________________________________________________________________
+
+
+    // Function: DOMSearchField
+    this.DOMSearchField = function()
+        {  return document.getElementById("MSearchField");  };
+
+    // Function: DOMSearchType
+    this.DOMSearchType = function()
+        {  return document.getElementById("MSearchType");  };
+
+    // Function: DOMPopupSearchResults
+    this.DOMPopupSearchResults = function()
+        {  return document.getElementById("MSearchResults");  };
+
+    // Function: DOMPopupSearchResultsWindow
+    this.DOMPopupSearchResultsWindow = function()
+        {  return document.getElementById("MSearchResultsWindow");  };
+
+    // Function: DOMSearchPanel
+    this.DOMSearchPanel = function()
+        {  return document.getElementById("MSearchPanel");  };
+
+
+
+
+    // Group: Event Handlers
+    // ________________________________________________________________________
+
+
+    /*
+        Function: OnSearchFieldFocus
+        Called when focus is added or removed from the search field.
+    */
+    this.OnSearchFieldFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchFieldChange
+        Called when the content of the search field is changed.
+    */
+    this.OnSearchFieldChange = function()
+        {
+        if (this.keyTimeout)
+            {
+            clearTimeout(this.keyTimeout);
+            this.keyTimeout = 0;
+            };
+
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != this.lastSearchValue)
+            {
+            if (searchValue != "")
+                {
+                this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
+                }
+            else
+                {
+                if (this.mode == "HTML")
+                    {  this.DOMPopupSearchResultsWindow().style.display = "none";  };
+                this.lastSearchValue = "";
+                };
+            };
+        };
+
+
+    /*
+        Function: OnSearchTypeFocus
+        Called when focus is added or removed from the search type.
+    */
+    this.OnSearchTypeFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchTypeChange
+        Called when the search type is changed.
+    */
+    this.OnSearchTypeChange = function()
+        {
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != "")
+            {
+            this.Search();
+            };
+        };
+
+
+
+    // Group: Action Functions
+    // ________________________________________________________________________
+
+
+    /*
+        Function: CloseResultsWindow
+        Closes the results window.
+    */
+    this.CloseResultsWindow = function()
+        {
+        this.DOMPopupSearchResultsWindow().style.display = "none";
+        this.Activate(false, true);
+        };
+
+
+    /*
+        Function: Search
+        Performs a search.
+    */
+    this.Search = function()
+        {
+        this.keyTimeout = 0;
+
+        var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+        var searchTopic = this.DOMSearchType().value;
+
+        var pageExtension = searchValue.substr(0,1);
+
+        if (pageExtension.match(/^[a-z]/i))
+            {  pageExtension = pageExtension.toUpperCase();  }
+        else if (pageExtension.match(/^[0-9]/))
+            {  pageExtension = 'Numbers';  }
+        else
+            {  pageExtension = "Symbols";  };
+
+        var resultsPage;
+        var resultsPageWithSearch;
+        var hasResultsPage;
+
+        // indexSectionsWithContent is defined in searchdata.js
+        if (indexSectionsWithContent[searchTopic][pageExtension] == true)
+            {
+            resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
+            resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+            hasResultsPage = true;
+            }
+        else
+            {
+            resultsPage = this.resultsPath + '/NoResults.html';
+            resultsPageWithSearch = resultsPage;
+            hasResultsPage = false;
+            };
+
+        var resultsFrame;
+        if (this.mode == "HTML")
+            {  resultsFrame = window.frames.MSearchResults;  }
+        else if (this.mode == "FramedHTML")
+            {  resultsFrame = window.top.frames['Content'];  };
+
+
+        if (resultsPage != this.lastResultsPage ||
+
+            // Bug in IE.  If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
+            // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
+            // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
+            // page anyway to get around the bug.
+            (browserType == "IE" && hasResultsPage &&
+            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
+
+            {
+            resultsFrame.location.href = resultsPageWithSearch;
+            }
+
+        // So if the results page is right and there's no IE bug, reperform the search on the existing page.  We have to check if there
+        // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
+        // if it did.
+        else if (hasResultsPage)
+            {
+            // We need to check if this exists in case the frame is present but didn't finish loading.
+            if (resultsFrame.searchResults)
+                {  resultsFrame.searchResults.Search(searchValue);  }
+
+            // Otherwise just reload instead of waiting.
+            else
+                {  resultsFrame.location.href = resultsPageWithSearch;  };
+            };
+
+
+        var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+        if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
+            {
+            var domSearchType = this.DOMSearchType();
+
+            var left = GetXPosition(domSearchType);
+            var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
+
+            MoveToPosition(domPopupSearchResultsWindow, left, top);
+            domPopupSearchResultsWindow.style.display = 'block';
+            };
+
+
+        this.lastSearchValue = searchValue;
+        this.lastResultsPage = resultsPage;
+        };
+
+
+
+    // Group: Activation Functions
+    // Functions that handle whether the entire panel is active or not.
+    // ________________________________________________________________________
+
+
+    /*
+        Function: Activate
+
+        Activates or deactivates the search panel, resetting things to their default values if necessary.  You can call this on every
+        control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
+
+        Parameters:
+
+            isActive - Whether you're activating or deactivating the panel.
+            ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
+    */
+    this.Activate = function(isActive, ignoreDeactivateDelay)
+        {
+        // We want to ignore isActive being false while the results window is open.
+        if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
+            {
+            if (this.inactivateTimeout)
+                {
+                clearTimeout(this.inactivateTimeout);
+                this.inactivateTimeout = 0;
+                };
+
+            this.DOMSearchPanel().className = 'MSearchPanelActive';
+
+            var searchField = this.DOMSearchField();
+
+            if (searchField.value == 'Search')
+                 {  searchField.value = "";  }
+            }
+        else if (!ignoreDeactivateDelay)
+            {
+            this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
+            }
+        else
+            {
+            this.InactivateAfterTimeout();
+            };
+        };
+
+
+    /*
+        Function: InactivateAfterTimeout
+
+        Called by <inactivateTimeout>, which is set by <Activate()>.  Inactivation occurs on a timeout because a control may
+        receive OnBlur() when focus is really transferring to another control in the search panel.  In this case we don't want to
+        actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
+        So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
+    */
+    this.InactivateAfterTimeout = function()
+        {
+        this.inactivateTimeout = 0;
+
+        this.DOMSearchPanel().className = 'MSearchPanelInactive';
+        this.DOMSearchField().value = "Search";
+
+	    this.lastSearchValue = "";
+	    this.lastResultsPage = "";
+        };
+    };
+
+
+
+
+/* ________________________________________________________________________________________________________
+
+   Class: SearchResults
+   _________________________________________________________________________________________________________
+
+   The class that handles everything on the search results page.
+   _________________________________________________________________________________________________________
+*/
+
+
+function SearchResults(name, mode)
+    {
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: lastMatchCount
+        The number of matches from the last run of <Search()>.
+    */
+    this.lastMatchCount = 0;
+
+
+    /*
+        Function: Toggle
+        Toggles the visibility of the passed element ID.
+    */
+    this.Toggle = function(id)
+        {
+        if (this.mode == "FramedHTML")
+            {  return;  };
+
+        var parentElement = document.getElementById(id);
+
+        var element = parentElement.firstChild;
+
+        while (element && element != parentElement)
+            {
+            if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
+                {
+                if (element.style.display == 'block')
+                    {  element.style.display = "none";  }
+                else
+                    {  element.style.display = 'block';  }
+                };
+
+            if (element.nodeName == 'DIV' && element.hasChildNodes())
+                {  element = element.firstChild;  }
+            else if (element.nextSibling)
+                {  element = element.nextSibling;  }
+            else
+                {
+                do
+                    {
+                    element = element.parentNode;
+                    }
+                while (element && element != parentElement && !element.nextSibling);
+
+                if (element && element != parentElement)
+                    {  element = element.nextSibling;  };
+                };
+            };
+        };
+
+
+    /*
+        Function: Search
+
+        Searches for the passed string.  If there is no parameter, it takes it from the URL query.
+
+        Always returns true, since other documents may try to call it and that may or may not be possible.
+    */
+    this.Search = function(search)
+        {
+        if (!search)
+            {
+            search = window.location.search;
+            search = search.substring(1);  // Remove the leading ?
+            search = unescape(search);
+            };
+
+        search = search.replace(/^ +/, "");
+        search = search.replace(/ +$/, "");
+        search = search.toLowerCase();
+
+        if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
+            {
+            search = search.replace(/\_/g, "_und");
+            search = search.replace(/\ +/gi, "_spc");
+            search = search.replace(/\~/g, "_til");
+            search = search.replace(/\!/g, "_exc");
+            search = search.replace(/\@/g, "_att");
+            search = search.replace(/\#/g, "_num");
+            search = search.replace(/\$/g, "_dol");
+            search = search.replace(/\%/g, "_pct");
+            search = search.replace(/\^/g, "_car");
+            search = search.replace(/\&/g, "_amp");
+            search = search.replace(/\*/g, "_ast");
+            search = search.replace(/\(/g, "_lpa");
+            search = search.replace(/\)/g, "_rpa");
+            search = search.replace(/\-/g, "_min");
+            search = search.replace(/\+/g, "_plu");
+            search = search.replace(/\=/g, "_equ");
+            search = search.replace(/\{/g, "_lbc");
+            search = search.replace(/\}/g, "_rbc");
+            search = search.replace(/\[/g, "_lbk");
+            search = search.replace(/\]/g, "_rbk");
+            search = search.replace(/\:/g, "_col");
+            search = search.replace(/\;/g, "_sco");
+            search = search.replace(/\"/g, "_quo");
+            search = search.replace(/\'/g, "_apo");
+            search = search.replace(/\</g, "_lan");
+            search = search.replace(/\>/g, "_ran");
+            search = search.replace(/\,/g, "_com");
+            search = search.replace(/\./g, "_per");
+            search = search.replace(/\?/g, "_que");
+            search = search.replace(/\//g, "_sla");
+            search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
+            };
+
+        var resultRows = document.getElementsByTagName("div");
+        var matches = 0;
+
+        var i = 0;
+        while (i < resultRows.length)
+            {
+            var row = resultRows.item(i);
+
+            if (row.className == "SRResult")
+                {
+                var rowMatchName = row.id.toLowerCase();
+                rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
+
+                if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
+                    {
+                    row.style.display = "block";
+                    matches++;
+                    }
+                else
+                    {  row.style.display = "none";  };
+                };
+
+            i++;
+            };
+
+        document.getElementById("Searching").style.display="none";
+
+        if (matches == 0)
+            {  document.getElementById("NoMatches").style.display="block";  }
+        else
+            {  document.getElementById("NoMatches").style.display="none";  }
+
+        this.lastMatchCount = matches;
+
+        return true;
+        };
+    };
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/javascript/searchdata.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,92 @@
+var indexSectionsWithContent = {
+   "General": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": true,
+      "D": true,
+      "E": false,
+      "F": true,
+      "G": true,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Functions": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": true,
+      "B": false,
+      "C": true,
+      "D": true,
+      "E": false,
+      "F": false,
+      "G": true,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": true,
+      "N": false,
+      "O": true,
+      "P": false,
+      "Q": false,
+      "R": true,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Files": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": false,
+      "D": false,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      }
+   }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FilesS.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_svgcanvas_perjs><div class=IEntry><a href="../files/svgcanvas-js.html#svgcanvas.js" target=_parent class=ISymbol>svgcanvas.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsA.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_addToSelection><div class=IEntry><a href="../files/svgcanvas-js.html#addToSelection" target=_parent class=ISymbol>addToSelection</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsC.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/svgcanvas-js.html#clear" target=_parent class=ISymbol>clear</a></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="../files/svgcanvas-js.html#clearSelection" target=_parent class=ISymbol>clearSelection</a></div></div><div class=SRResult id=SR_createLayer><div class=IEntry><a href="../files/svgcanvas-js.html#createLayer" target=_parent class=ISymbol>createLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsD.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_deleteCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#deleteCurrentLayer" target=_parent class=ISymbol>deleteCurrentLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsG.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_getCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#getCurrentLayer" target=_parent class=ISymbol>getCurrentLayer</a></div></div><div class=SRResult id=SR_getLayer><div class=IEntry><a href="../files/svgcanvas-js.html#getLayer" target=_parent class=ISymbol>getLayer</a></div></div><div class=SRResult id=SR_getLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#getLayerOpacity" target=_parent class=ISymbol>getLayerOpacity</a></div></div><div class=SRResult id=SR_getLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#getLayerVisibility" target=_parent class=ISymbol>getLayerVisibility</a></div></div><div class=SRResult id=SR_getNumLayers><div class=IEntry><a href="../files/svgcanvas-js.html#getNumLayers" target=_parent class=ISymbol>getNumLayers</a></div></div><div class=SRResult id=SR_getSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#getSvgString" target=_parent class=ISymbol>getSvgString</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsM.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_moveSelectedToLayer><div class=IEntry><a href="../files/svgcanvas-js.html#moveSelectedToLayer" target=_parent class=ISymbol>moveSelectedToLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsO.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_open><div class=IEntry><a href="../files/svgcanvas-js.html#open" target=_parent class=ISymbol>open</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsR.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_removeFromSelection><div class=IEntry><a href="../files/svgcanvas-js.html#removeFromSelection" target=_parent class=ISymbol>removeFromSelection</a></div></div><div class=SRResult id=SR_renameCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#renameCurrentLayer" target=_parent class=ISymbol>renameCurrentLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/FunctionsS.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/svgcanvas-js.html#save" target=_parent class=ISymbol>save</a></div></div><div class=SRResult id=SR_setCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayer" target=_parent class=ISymbol>setCurrentLayer</a></div></div><div class=SRResult id=SR_setCurrentLayerPosition><div class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayerPosition" target=_parent class=ISymbol>setCurrentLayerPosition</a></div></div><div class=SRResult id=SR_setLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#setLayerOpacity" target=_parent class=ISymbol>setLayerOpacity</a></div></div><div class=SRResult id=SR_setLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#setLayerVisibility" target=_parent class=ISymbol>setLayerVisibility</a></div></div><div class=SRResult id=SR_setSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#setSvgString" target=_parent class=ISymbol>setSvgString</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralA.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_addToSelection><div class=IEntry><a href="../files/svgcanvas-js.html#addToSelection" target=_parent class=ISymbol>addToSelection</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralC.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/svgcanvas-js.html#clear" target=_parent class=ISymbol>clear</a></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="../files/svgcanvas-js.html#clearSelection" target=_parent class=ISymbol>clearSelection</a></div></div><div class=SRResult id=SR_createLayer><div class=IEntry><a href="../files/svgcanvas-js.html#createLayer" target=_parent class=ISymbol>createLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralD.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_deleteCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#deleteCurrentLayer" target=_parent class=ISymbol>deleteCurrentLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralF.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Fill_spcand_spcStroke><div class=IEntry><a href="../files/svgcanvas-js.html#Fill_and_Stroke" target=_parent class=ISymbol>Fill and Stroke</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralG.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_getCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#getCurrentLayer" target=_parent class=ISymbol>getCurrentLayer</a></div></div><div class=SRResult id=SR_getLayer><div class=IEntry><a href="../files/svgcanvas-js.html#getLayer" target=_parent class=ISymbol>getLayer</a></div></div><div class=SRResult id=SR_getLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#getLayerOpacity" target=_parent class=ISymbol>getLayerOpacity</a></div></div><div class=SRResult id=SR_getLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#getLayerVisibility" target=_parent class=ISymbol>getLayerVisibility</a></div></div><div class=SRResult id=SR_getNumLayers><div class=IEntry><a href="../files/svgcanvas-js.html#getNumLayers" target=_parent class=ISymbol>getNumLayers</a></div></div><div class=SRResult id=SR_getSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#getSvgString" target=_parent class=ISymbol>getSvgString</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralL.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Layers><div class=IEntry><a href="../files/svgcanvas-js.html#Layers" target=_parent class=ISymbol>Layers</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralM.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_moveSelectedToLayer><div class=IEntry><a href="../files/svgcanvas-js.html#moveSelectedToLayer" target=_parent class=ISymbol>moveSelectedToLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralO.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_open><div class=IEntry><a href="../files/svgcanvas-js.html#open" target=_parent class=ISymbol>open</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralR.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_removeFromSelection><div class=IEntry><a href="../files/svgcanvas-js.html#removeFromSelection" target=_parent class=ISymbol>removeFromSelection</a></div></div><div class=SRResult id=SR_renameCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#renameCurrentLayer" target=_parent class=ISymbol>renameCurrentLayer</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/GeneralS.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="../files/svgcanvas-js.html#save" target=_parent class=ISymbol>save</a></div></div><div class=SRResult id=SR_Selection><div class=IEntry><a href="../files/svgcanvas-js.html#Selection" target=_parent class=ISymbol>Selection</a></div></div><div class=SRResult id=SR_Serialization><div class=IEntry><a href="../files/svgcanvas-js.html#Serialization" target=_parent class=ISymbol>Serialization</a></div></div><div class=SRResult id=SR_setCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayer" target=_parent class=ISymbol>setCurrentLayer</a></div></div><div class=SRResult id=SR_setCurrentLayerPosition><div class=IEntry><a href="../files/svgcanvas-js.html#setCurrentLayerPosition" target=_parent class=ISymbol>setCurrentLayerPosition</a></div></div><div class=SRResult id=SR_setLayerOpacity><div class=IEntry><a href="../files/svgcanvas-js.html#setLayerOpacity" target=_parent class=ISymbol>setLayerOpacity</a></div></div><div class=SRResult id=SR_setLayerVisibility><div class=IEntry><a href="../files/svgcanvas-js.html#setLayerVisibility" target=_parent class=ISymbol>setLayerVisibility</a></div></div><div class=SRResult id=SR_setSvgString><div class=IEntry><a href="../files/svgcanvas-js.html#setSvgString" target=_parent class=ISymbol>setSvgString</a></div></div><div class=SRResult id=SR_svgcanvas_perjs><div class=IEntry><a href="../files/svgcanvas-js.html#svgcanvas.js" target=_parent class=ISymbol>svgcanvas.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "HTML");
+searchResults.Search();
+--></script></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/search/NoResults.html	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=SRStatus id=NoMatches>No Matches</div></div><script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/docs/styles/main.css	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,767 @@
+/*
+   IMPORTANT: If you're editing this file in the output directory of one of
+   your projects, your changes will be overwritten the next time you run
+   Natural Docs.  Instead, copy this file to your project directory, make your
+   changes, and you can use it with -s.  Even better would be to make a CSS
+   file in your project directory with only your changes, which you can then
+   use with -s [original style] [your changes].
+
+   On the other hand, if you're editing this file in the Natural Docs styles
+   directory, the changes will automatically be applied to all your projects
+   that use this style the next time Natural Docs is run on them.
+
+   This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+   Natural Docs is licensed under the GPL
+*/
+
+body {
+    font: 10pt Verdana, Arial, sans-serif;
+    color: #000000;
+    margin: 0; padding: 0;
+    }
+
+.ContentPage,
+.IndexPage,
+.FramedMenuPage {
+    background-color: #E8E8E8;
+    }
+.FramedContentPage,
+.FramedIndexPage,
+.FramedSearchResultsPage,
+.PopupSearchResultsPage {
+    background-color: #FFFFFF;
+    }
+
+
+a:link,
+a:visited { color: #900000; text-decoration: none }
+a:hover { color: #900000; text-decoration: underline }
+a:active { color: #FF0000; text-decoration: underline }
+
+td {
+    vertical-align: top }
+
+img { border: 0;  }
+
+
+/*
+    Comment out this line to use web-style paragraphs (blank line between
+    paragraphs, no indent) instead of print-style paragraphs (no blank line,
+    indented.)
+*/
+p {
+    text-indent: 5ex; margin: 0 }
+
+
+/*  Opera doesn't break with just wbr, but will if you add this.  */
+.Opera wbr:after {
+	content: "\00200B";
+	}
+
+
+/*  Blockquotes are used as containers for things that may need to scroll.  */
+blockquote {
+    padding: 0;
+    margin: 0;
+    overflow: auto;
+    }
+
+
+.Firefox1 blockquote {
+    padding-bottom: .5em;
+    }
+
+/*  Turn off scrolling when printing.  */
+@media print {
+    blockquote {
+        overflow: visible;
+        }
+    .IE blockquote {
+        width: auto;
+        }
+    }
+
+
+
+#Menu {
+    font-size: 9pt;
+    padding: 10px 0 0 0;
+    }
+.ContentPage #Menu,
+.IndexPage #Menu {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 31ex;
+    overflow: hidden;
+    }
+.ContentPage .Firefox #Menu,
+.IndexPage .Firefox #Menu {
+    width: 27ex;
+    }
+
+
+    .MTitle {
+        font-size: 16pt; font-weight: bold; font-variant: small-caps;
+        text-align: center;
+        padding: 5px 10px 15px 10px;
+        border-bottom: 1px dotted #000000;
+        margin-bottom: 15px }
+
+    .MSubTitle {
+        font-size: 9pt; font-weight: normal; font-variant: normal;
+        margin-top: 1ex; margin-bottom: 5px }
+
+
+    .MEntry a:link,
+    .MEntry a:hover,
+    .MEntry a:visited { color: #606060; margin-right: 0 }
+    .MEntry a:active { color: #A00000; margin-right: 0 }
+
+
+    .MGroup {
+        font-variant: small-caps; font-weight: bold;
+        margin: 1em 0 1em 10px;
+        }
+
+    .MGroupContent {
+        font-variant: normal; font-weight: normal }
+
+    .MGroup a:link,
+    .MGroup a:hover,
+    .MGroup a:visited { color: #545454; margin-right: 10px }
+    .MGroup a:active { color: #A00000; margin-right: 10px }
+
+
+    .MFile,
+    .MText,
+    .MLink,
+    .MIndex {
+        padding: 1px 17px 2px 10px;
+        margin: .25em 0 .25em 0;
+        }
+
+    .MText {
+        font-size: 8pt; font-style: italic }
+
+    .MLink {
+        font-style: italic }
+
+    #MSelected {
+        color: #000000; background-color: #FFFFFF;
+        /*  Replace padding with border.  */
+        padding: 0 10px 0 10px;
+        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
+        margin-right: 5px;
+        }
+
+    /*  Close off the left side when its in a group.  */
+    .MGroup #MSelected {
+        padding-left: 9px; border-left-width: 1px }
+
+    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
+    .Firefox #MSelected {
+        -moz-border-radius-topright: 10px;
+        -moz-border-radius-bottomright: 10px }
+    .Firefox .MGroup #MSelected {
+        -moz-border-radius-topleft: 10px;
+        -moz-border-radius-bottomleft: 10px }
+
+
+    #MSearchPanel {
+        padding: 0px 6px;
+        margin: .25em 0;
+        }
+
+
+    #MSearchField {
+        font: italic 9pt Verdana, sans-serif;
+        color: #606060;
+        background-color: #E8E8E8;
+        border: none;
+        padding: 2px 4px;
+        width: 100%;
+        }
+    /* Only Opera gets it right. */
+    .Firefox #MSearchField,
+    .IE #MSearchField,
+    .Safari #MSearchField {
+        width: 94%;
+        }
+    .Opera9 #MSearchField,
+    .Konqueror #MSearchField {
+        width: 97%;
+        }
+    .FramedMenuPage .Firefox #MSearchField,
+    .FramedMenuPage .Safari #MSearchField,
+    .FramedMenuPage .Konqueror #MSearchField {
+        width: 98%;
+        }
+
+    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
+        It's presence doesn't hurt anything other browsers. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        padding: 1px 3px;
+        }
+    .MSearchPanelActive #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        font-style: normal;
+        padding: 1px 3px;
+        }
+
+    #MSearchType {
+        visibility: hidden;
+        font: 8pt Verdana, sans-serif;
+        width: 98%;
+        padding: 0;
+        border: 1px solid #C0C0C0;
+        }
+    .MSearchPanelActive #MSearchType,
+    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
+    #MSearchType:focus {
+        visibility: visible;
+        color: #606060;
+        }
+    #MSearchType option#MSearchEverything {
+        font-weight: bold;
+        }
+
+    .Opera8 .MSearchPanelInactive:hover,
+    .Opera8 .MSearchPanelActive {
+        margin-left: -1px;
+        }
+
+
+    iframe#MSearchResults {
+        width: 60ex;
+        height: 15em;
+        }
+    #MSearchResultsWindow {
+        display: none;
+        position: absolute;
+        left: 0; top: 0;
+        border: 1px solid #000000;
+        background-color: #E8E8E8;
+        }
+    #MSearchResultsWindowClose {
+        font-weight: bold;
+        font-size: 8pt;
+        display: block;
+        padding: 2px 5px;
+        }
+    #MSearchResultsWindowClose:link,
+    #MSearchResultsWindowClose:visited {
+        color: #000000;
+        text-decoration: none;
+        }
+    #MSearchResultsWindowClose:active,
+    #MSearchResultsWindowClose:hover {
+        color: #800000;
+        text-decoration: none;
+        background-color: #F4F4F4;
+        }
+
+
+
+
+#Content {
+    padding-bottom: 15px;
+    }
+
+.ContentPage #Content {
+    border-width: 0 0 1px 1px;
+    border-style: solid;
+    border-color: #000000;
+    background-color: #FFFFFF;
+    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
+    margin-left: 31ex;
+    }
+.ContentPage .Firefox #Content {
+    margin-left: 27ex;
+    }
+
+
+
+    .CTopic {
+        font-size: 10pt;
+        margin-bottom: 3em;
+        }
+
+
+    .CTitle {
+        font-size: 12pt; font-weight: bold;
+        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
+        margin: 0 15px .5em 15px }
+
+    .CGroup .CTitle {
+        font-size: 16pt; font-variant: small-caps;
+        padding-left: 15px; padding-right: 15px;
+        border-width: 0 0 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    .CClass .CTitle,
+    .CInterface .CTitle,
+    .CDatabase .CTitle,
+    .CDatabaseTable .CTitle,
+    .CSection .CTitle {
+        font-size: 18pt;
+        color: #FFFFFF; background-color: #A0A0A0;
+        padding: 10px 15px 10px 15px;
+        border-width: 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    #MainTopic .CTitle {
+        font-size: 20pt;
+        color: #FFFFFF; background-color: #7070C0;
+        padding: 10px 15px 10px 15px;
+        border-width: 0 0 3px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    .CBody {
+        margin-left: 15px; margin-right: 15px }
+
+
+    .CToolTip {
+        position: absolute; visibility: hidden;
+        left: 0; top: 0;
+        background-color: #FFFFE0;
+        padding: 5px;
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
+        font-size: 8pt;
+        }
+
+    .Opera .CToolTip {
+        max-width: 98%;
+        }
+
+    /*  Scrollbars would be useless.  */
+    .CToolTip blockquote {
+        overflow: hidden;
+        }
+    .IE6 .CToolTip blockquote {
+        overflow: visible;
+        }
+
+    .CHeading {
+        font-weight: bold; font-size: 10pt;
+        margin: 1.5em 0 .5em 0;
+        }
+
+    .CBody pre {
+        font: 10pt "Courier New", Courier, monospace;
+        margin: 1em 0;
+        }
+
+    .CBody ul {
+        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
+             Reapply it here as padding.  */
+        padding-left: 15px; padding-right: 15px;
+        margin: .5em 5ex .5em 5ex;
+        }
+
+    .CDescriptionList {
+        margin: .5em 5ex 0 5ex }
+
+        .CDLEntry {
+            font: 10pt "Courier New", Courier, monospace; color: #808080;
+            padding-bottom: .25em;
+            white-space: nowrap }
+
+        .CDLDescription {
+            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
+            padding-bottom: .5em; padding-left: 5ex }
+
+
+    .CTopic img {
+        text-align: center;
+        display: block;
+        margin: 1em auto;
+        }
+    .CImageCaption {
+        font-variant: small-caps;
+        font-size: 8pt;
+        color: #808080;
+        text-align: center;
+        position: relative;
+        top: 1em;
+        }
+
+    .CImageLink {
+        color: #808080;
+        font-style: italic;
+        }
+    a.CImageLink:link,
+    a.CImageLink:visited,
+    a.CImageLink:hover { color: #808080 }
+
+
+
+
+
+.Prototype {
+    font: 10pt "Courier New", Courier, monospace;
+    padding: 5px 3ex;
+    border-width: 1px; border-style: solid;
+    margin: 0 5ex 1.5em 5ex;
+    }
+
+    .Prototype td {
+        font-size: 10pt;
+        }
+
+    .PDefaultValue,
+    .PDefaultValuePrefix,
+    .PTypePrefix {
+        color: #8F8F8F;
+        }
+    .PTypePrefix {
+        text-align: right;
+        }
+    .PAfterParameters {
+        vertical-align: bottom;
+        }
+
+    .IE .Prototype table {
+        padding: 0;
+        }
+
+    .CFunction .Prototype {
+        background-color: #F4F4F4; border-color: #D0D0D0 }
+    .CProperty .Prototype {
+        background-color: #F4F4FF; border-color: #C0C0E8 }
+    .CVariable .Prototype {
+        background-color: #FFFFF0; border-color: #E0E0A0 }
+
+    .CClass .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        background-color: #F4F4F4;
+        }
+    .CInterface .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+        background-color: #F4F4FF;
+        }
+
+    .CDatabaseIndex .Prototype,
+    .CConstant .Prototype {
+        background-color: #D0D0D0; border-color: #000000 }
+    .CType .Prototype,
+    .CEnumeration .Prototype {
+        background-color: #FAF0F0; border-color: #E0B0B0;
+        }
+    .CDatabaseTrigger .Prototype,
+    .CEvent .Prototype,
+    .CDelegate .Prototype {
+        background-color: #F0FCF0; border-color: #B8E4B8 }
+
+    .CToolTip .Prototype {
+        margin: 0 0 .5em 0;
+        white-space: nowrap;
+        }
+
+
+
+
+
+.Summary {
+    margin: 1.5em 5ex 0 5ex }
+
+    .STitle {
+        font-size: 12pt; font-weight: bold;
+        margin-bottom: .5em }
+
+
+    .SBorder {
+        background-color: #FFFFF0;
+        padding: 15px;
+        border: 1px solid #C0C060 }
+
+    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
+        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
+        problem with frames, haven't tested it without.  */
+    .FramedContentPage .IE .SBorder {
+        width: 100% }
+
+    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
+    .Firefox .SBorder {
+        -moz-border-radius: 20px }
+
+
+    .STable {
+        font-size: 9pt; width: 100% }
+
+    .SEntry {
+        width: 30% }
+    .SDescription {
+        width: 70% }
+
+
+    .SMarked {
+        background-color: #F8F8D8 }
+
+    .SDescription { padding-left: 2ex }
+    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
+    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
+    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
+    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
+    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
+
+    .SDescription a { color: #800000}
+    .SDescription a:active { color: #A00000 }
+
+    .SGroup td {
+        padding-top: .5em; padding-bottom: .25em }
+
+    .SGroup .SEntry {
+        font-weight: bold; font-variant: small-caps }
+
+    .SGroup .SEntry a { color: #800000 }
+    .SGroup .SEntry a:active { color: #F00000 }
+
+
+    .SMain td,
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        font-size: 10pt;
+        padding-bottom: .25em }
+
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        padding-top: 1em }
+
+    .SMain .SEntry,
+    .SClass .SEntry,
+    .SDatabase .SEntry,
+    .SDatabaseTable .SEntry,
+    .SSection .SEntry {
+        font-weight: bold;
+        }
+
+    .SMain .SEntry a,
+    .SClass .SEntry a,
+    .SDatabase .SEntry a,
+    .SDatabaseTable .SEntry a,
+    .SSection .SEntry a { color: #000000 }
+
+    .SMain .SEntry a:active,
+    .SClass .SEntry a:active,
+    .SDatabase .SEntry a:active,
+    .SDatabaseTable .SEntry a:active,
+    .SSection .SEntry a:active { color: #A00000 }
+
+
+
+
+
+.ClassHierarchy {
+    margin: 0 15px 1em 15px }
+
+    .CHEntry {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        margin-bottom: 3px;
+        padding: 2px 2ex;
+        font-size: 10pt;
+        background-color: #F4F4F4; color: #606060;
+        }
+
+    .Firefox .CHEntry {
+        -moz-border-radius: 4px;
+        }
+
+    .CHCurrent .CHEntry {
+        font-weight: bold;
+        border-color: #000000;
+        color: #000000;
+        }
+
+    .CHChildNote .CHEntry {
+        font-style: italic;
+        font-size: 8pt;
+        }
+
+    .CHIndent {
+        margin-left: 3ex;
+        }
+
+    .CHEntry a:link,
+    .CHEntry a:visited,
+    .CHEntry a:hover {
+        color: #606060;
+        }
+    .CHEntry a:active {
+        color: #800000;
+        }
+
+
+
+
+
+#Index {
+    background-color: #FFFFFF;
+    }
+
+/*  As opposed to .PopupSearchResultsPage #Index  */
+.IndexPage #Index,
+.FramedIndexPage #Index,
+.FramedSearchResultsPage #Index {
+    padding: 15px;
+    }
+
+.IndexPage #Index {
+    border-width: 0 0 1px 1px;
+    border-style: solid;
+    border-color: #000000;
+    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
+    margin-left: 27ex;
+    }
+
+
+    .IPageTitle {
+        font-size: 20pt; font-weight: bold;
+        color: #FFFFFF; background-color: #7070C0;
+        padding: 10px 15px 10px 15px;
+        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
+        margin: -15px -15px 0 -15px }
+
+    .FramedSearchResultsPage .IPageTitle {
+        margin-bottom: 15px;
+        }
+
+    .INavigationBar {
+        font-size: 10pt;
+        text-align: center;
+        background-color: #FFFFF0;
+        padding: 5px;
+        border-bottom: solid 1px black;
+        margin: 0 -15px 15px -15px;
+        }
+
+    .INavigationBar a {
+        font-weight: bold }
+
+    .IHeading {
+        font-size: 16pt; font-weight: bold;
+        padding: 2.5em 0 .5em 0;
+        text-align: center;
+        width: 3.5ex;
+        }
+    #IFirstHeading {
+        padding-top: 0;
+        }
+
+    .IEntry {
+        font-size: 10pt;
+        padding-left: 1ex;
+        }
+    .PopupSearchResultsPage .IEntry {
+        font-size: 8pt;
+        padding: 1px 5px;
+        }
+    .PopupSearchResultsPage .Opera9 .IEntry,
+    .FramedSearchResultsPage .Opera9 .IEntry {
+        text-align: left;
+        }
+    .FramedSearchResultsPage .IEntry {
+        padding: 0;
+        }
+
+    .ISubIndex {
+        padding-left: 3ex; padding-bottom: .5em }
+    .PopupSearchResultsPage .ISubIndex {
+        display: none;
+        }
+
+    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
+         index if everything's the same color.  */
+    .ISymbol {
+        font-weight: bold; color: #900000  }
+
+    .IndexPage .ISymbolPrefix,
+    .FramedIndexPage .ISymbolPrefix {
+        font-size: 10pt;
+        text-align: right;
+        color: #C47C7C;
+        background-color: #F8F8F8;
+        border-right: 3px solid #E0E0E0;
+        border-left: 1px solid #E0E0E0;
+        padding: 0 1px 0 2px;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix,
+    .FramedSearchResultsPage .ISymbolPrefix {
+        color: #900000;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix {
+        font-size: 8pt;
+        }
+
+    .IndexPage #IFirstSymbolPrefix,
+    .FramedIndexPage #IFirstSymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        }
+    .IndexPage #ILastSymbolPrefix,
+    .FramedIndexPage #ILastSymbolPrefix {
+        border-bottom: 1px solid #E0E0E0;
+        }
+    .IndexPage #IOnlySymbolPrefix,
+    .FramedIndexPage #IOnlySymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        border-bottom: 1px solid #E0E0E0;
+        }
+
+    a.IParent,
+    a.IFile {
+        display: block;
+        }
+
+    .PopupSearchResultsPage .SRStatus {
+        padding: 2px 5px;
+        font-size: 8pt;
+        font-style: italic;
+        }
+    .FramedSearchResultsPage .SRStatus {
+        font-size: 10pt;
+        font-style: italic;
+        }
+
+    .SRResult {
+        display: none;
+        }
+
+
+
+#Footer {
+    font-size: 8pt;
+    color: #989898;
+    text-align: right;
+    }
+
+#Footer p {
+    text-indent: 0;
+    margin-bottom: .5em;
+    }
+
+.ContentPage #Footer,
+.IndexPage #Footer {
+    text-align: right;
+    margin: 2px;
+    }
+
+.FramedMenuPage #Footer {
+    text-align: center;
+    margin: 5em 10px 10px 10px;
+    padding-top: 1em;
+    border-top: 1px solid #C8C8C8;
+    }
+
+    #Footer a:link,
+    #Footer a:hover,
+    #Footer a:visited { color: #989898 }
+    #Footer a:active { color: #A00000 }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/embedapi.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,157 @@
+/*
+function embedded_svg_edit(frame){
+  //initialize communication
+  this.frame = frame;
+  this.stack = []; //callback stack
+  
+  var editapi = this;
+  
+  window.addEventListener("message", function(e){
+    if(e.data.substr(0,5) == "ERROR"){
+      editapi.stack.splice(0,1)[0](e.data,"error")
+    }else{
+      editapi.stack.splice(0,1)[0](e.data)
+    }
+  }, false)
+}
+
+embedded_svg_edit.prototype.call = function(code, callback){
+  this.stack.push(callback);
+  this.frame.contentWindow.postMessage(code,"*");
+}
+
+embedded_svg_edit.prototype.getSvgString = function(callback){
+  this.call("svgCanvas.getSvgString()",callback)
+}
+
+embedded_svg_edit.prototype.setSvgString = function(svg){
+  this.call("svgCanvas.setSvgString('"+svg.replace(/'/g, "\\'")+"')");
+}
+*/
+
+
+/*
+Embedded SVG-edit API
+
+General usage:
+- Have an iframe somewhere pointing to a version of svg-edit > r1000
+- Initialize the magic with:
+var svgCanvas = new embedded_svg_edit(window.frames['svgedit']);
+- Pass functions in this format:
+svgCanvas.setSvgString("string")
+- Or if a callback is needed:
+svgCanvas.setSvgString("string")(function(data, error){
+  if(error){
+    //there was an error
+  }else{
+    //handle data
+  }
+})
+
+Everything is done with the same API as the real svg-edit, 
+and all documentation is unchanged. The only difference is
+when handling returns, the callback notation is used instead. 
+
+var blah = new embedded_svg_edit(window.frames['svgedit']);
+blah.clearSelection("woot","blah",1337,[1,2,3,4,5,"moo"],-42,{a: "tree",b:6, c: 9})(function(){console.log("GET DATA",arguments)})
+*/
+
+function embedded_svg_edit(frame){
+  //initialize communication
+  this.frame = frame;
+  //this.stack = [] //callback stack
+  this.callbacks = {}; //successor to stack
+  this.encode = embedded_svg_edit.encode;
+  //List of functions extracted with this:
+  //Run in firebug on http://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html
+  
+  //for(var i=0,q=[],f = document.querySelectorAll("div.CFunction h3.CTitle a");i<f.length;i++){q.push(f[i].name)};q
+  //var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear"];
+  
+  
+  //Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API
+  //var l=[];for(var i in svgCanvas){if(typeof svgCanvas[i] == "function"){l.push(i)}};
+  //run in svgedit itself
+  var functions = ["updateElementFromJson", "embedImage", "fixOperaXML", "clearSelection", "addToSelection", "removeFromSelection", "addNodeToSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear", "clearPath", "getNodePoint", "clonePathNode", "deletePathNode", "getResolution", "getImageTitle", "setImageTitle", "setResolution", "setBBoxZoom", "setZoom", "getMode", "setMode", "getStrokeColor", "setStrokeColor", "getFillColor", "setFillColor", "setStrokePaint", "setFillPaint", "getStrokeWidth", "setStrokeWidth", "getStrokeStyle", "setStrokeStyle", "getOpacity", "setOpacity", "getFillOpacity", "setFillOpacity", "getStrokeOpacity", "setStrokeOpacity", "getTransformList", "getBBox", "getRotationAngle", "setRotationAngle", "each", "bind", "setIdPrefix", "getBold", "setBold", "getItalic", "setItalic", "getFontFamily", "setFontFamily", "getFontSize", "setFontSize", "getText", "setTextContent", "setImageURL", "setRectRadius", "setSegType", "quickClone", "beginUndoableChange", "changeSelectedAttributeNoUndo", "finishUndoableChange", "changeSelectedAttribute", "deleteSelectedElements", "groupSelectedElements", "ungroupSelectedElement", "moveToTopSelectedElement", "moveToBottomSelectedElement", "moveSelectedElements", "getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText", "getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion", "setIconSize", "setLang", "setCustomHandlers"]
+  
+  //TODO: rewrite the following, it's pretty scary.
+  for(var i = 0; i < functions.length; i++){
+    this[functions[i]] = (function(d){
+      return function(){
+        var t = this //new callback
+        for(var g = 0, args = []; g < arguments.length; g++){
+          args.push(arguments[g]);
+        }
+        var cbid = t.send(d,args, function(){})  //the callback (currently it's nothing, but will be set later
+        
+        return function(newcallback){
+          t.callbacks[cbid] = newcallback; //set callback
+        }
+      }
+    })(functions[i])
+  }
+  //TODO: use AddEvent for Trident browsers, currently they dont support SVG, but they do support onmessage
+  var t = this;
+  window.addEventListener("message", function(e){
+    if(e.data.substr(0,4)=="SVGe"){ //because svg-edit is too longish
+      var data = e.data.substr(4);
+      var cbid = data.substr(0, data.indexOf(";"));
+      if(t.callbacks[cbid]){
+        if(data.substr(0,6) != "error:"){
+          t.callbacks[cbid](eval("("+data.substr(cbid.length+1)+")"))
+        }else{
+          t.callbacks[cbid](data, "error");
+        }
+      }
+    }
+    //this.stack.shift()[0](e.data,e.data.substr(0,5) == "ERROR"?'error':null) //replace with shift
+  }, false)
+}
+
+embedded_svg_edit.encode = function(obj){
+  //simple partial JSON encoder implementation
+  if(window.JSON && JSON.stringify) return JSON.stringify(obj);
+  var enc = arguments.callee; //for purposes of recursion
+  
+  if(typeof obj == "boolean" || typeof obj == "number"){
+      return obj+'' //should work...
+  }else if(typeof obj == "string"){
+    //a large portion of this is stolen from Douglas Crockford's json2.js
+    return '"'+
+          obj.replace(
+            /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g
+          , function (a) {
+            return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+          })
+          +'"'; //note that this isn't quite as purtyful as the usualness
+  }else if(obj.length){ //simple hackish test for arrayish-ness
+    for(var i = 0; i < obj.length; i++){
+      obj[i] = enc(obj[i]); //encode every sub-thingy on top
+    }
+    return "["+obj.join(",")+"]";
+  }else{
+    var pairs = []; //pairs will be stored here
+    for(var k in obj){ //loop through thingys
+      pairs.push(enc(k)+":"+enc(obj[k])); //key: value
+    }
+    return "{"+pairs.join(",")+"}" //wrap in the braces
+  }
+}
+
+embedded_svg_edit.prototype.send = function(name, args, callback){
+  var cbid = Math.floor(Math.random()*31776352877+993577).toString();
+  //this.stack.push(callback);
+  this.callbacks[cbid] = callback;
+  for(var argstr = [], i = 0; i < args.length; i++){
+    argstr.push(this.encode(args[i]))
+  }
+  var t = this;
+  setTimeout(function(){//delay for the callback to be set in case its synchronous
+    t.frame.contentWindow.postMessage(cbid+";svgCanvas['"+name+"']("+argstr.join(",")+")","*");
+  }, 0);
+  return cbid;
+  //this.stack.shift()("svgCanvas['"+name+"']("+argstr.join(",")+")")
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/README.txt	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,61 @@
+filename                        origin
+
+align-bottom.png                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-bottom.png
+align-bottom.svg                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-bottom.svg
+align-center.png                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-center.png
+align-center.svg                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-center.svg
+align-left.png                  http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-left.png
+align-left.svg                  http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-left.svg
+align-middle.png                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-center.png
+align-middle.svg                http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-center.svg
+align-right.png                 http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-right.png
+align-right.svg                 http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-horizontal-right.svg
+align-top.png                   http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-top.png
+align-top.svg                   http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/actions/align-vertical-top.svg
+bold.png
+cancel.png
+circle.png
+clear.png
+clone.png
+copy.png
+cut.png
+delete.png
+document-properties.png
+dropdown.gif
+ellipse.png
+eye.png
+flyouth.png
+flyup.gif
+freehand-circle.png
+freehand-square.png
+go-down.png
+go-up.png
+image.png
+italic.png
+line.png
+logo.png
+logo.svg
+move_bottom.png
+move_top.png
+none.png
+open.png
+paste.png
+path.png
+polygon.png                     http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-polygon.png
+polygon.svg                     http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-polygon.svg
+rect.png
+redo.png
+rotate.png
+save.png
+select.png
+sep.png
+shape_group.png
+shape_ungroup.png
+source.png
+square.png
+text.png                        http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-text.png
+text.svg                        http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-text.svg
+undo.png
+view-refresh.png
+wave.png
+zoom.png                        http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/page-magnifier.png
Binary file htdocs/svg-edit/editor/images/align-bottom.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-bottom.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg5741"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-bottom-vertical.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-bottom-vertical.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs5743">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient6938"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient6936"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient6934"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient6932"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient6930"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient6928"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient6926"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient6924"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.197802"
+     inkscape:cx="8"
+     inkscape:cy="9.8019802"
+     inkscape:current-layer="g6828"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="1078"
+     inkscape:window-height="786"
+     inkscape:window-x="243"
+     inkscape:window-y="71" />
+  <metadata
+     id="metadata5746">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g6828"
+       transform="translate(30.00011,90.000366)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <g
+         style="display:inline"
+         id="g6838"
+         transform="translate(-30.00009,-1.0002798)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect3052"
+           width="12"
+           height="7"
+           x="69.500122"
+           y="12.5"
+           transform="matrix(0,-1,1,0,0,0)"
+           inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+           inkscape:export-xdpi="90"
+           inkscape:export-ydpi="90" />
+        <rect
+           style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect3054"
+           width="10"
+           height="5.0000305"
+           x="70.500122"
+           y="13.5"
+           transform="matrix(0,-1,1,0,0,0)"
+           rx="0"
+           ry="0"
+           inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+           inkscape:export-xdpi="90"
+           inkscape:export-ydpi="90" />
+        <g
+           id="g3056"
+           transform="translate(-127,-559)"
+           inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+           inkscape:export-xdpi="90"
+           inkscape:export-ydpi="90">
+          <rect
+             transform="matrix(0,-1,1,0,0,0)"
+             y="129.49626"
+             x="-489.49979"
+             height="7.0035982"
+             width="17.999748"
+             id="rect3058"
+             style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+          <rect
+             transform="matrix(0,-1,1,0,0,0)"
+             y="130.50006"
+             x="-488.50009"
+             height="4.9998937"
+             width="15.999757"
+             id="rect3060"
+             style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+             rx="0"
+             ry="0" />
+        </g>
+        <g
+           id="g3294"
+           transform="translate(-187,-560)"
+           inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+           inkscape:export-xdpi="90"
+           inkscape:export-ydpi="90">
+          <rect
+             y="489.5"
+             x="196.49989"
+             height="1.9999999"
+             width="3.0000916"
+             id="rect3296"
+             style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+          <path
+             style="fill:url(#linearGradient6932);fill-opacity:1;stroke:url(#linearGradient6934);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+             d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
+             id="path3298"
+             sodipodi:nodetypes="cccc" />
+          <path
+             style="fill:url(#linearGradient6936);fill-opacity:1;stroke:url(#linearGradient6938);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+             d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
+             id="path3300"
+             sodipodi:nodetypes="cccc" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/align-center.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-center.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg10958"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-horisontal-center.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-center.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs10960">
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient4708"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-395.9999,-981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient4706"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-395.9999,-981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient4704"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient4702"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16"
+     inkscape:cy="11.460711"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="797"
+     inkscape:window-height="628"
+     inkscape:window-x="0"
+     inkscape:window-y="47" />
+  <metadata
+     id="metadata10963">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g4044"
+       transform="matrix(0,-1,1,0,-59.999911,-168.00002)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <rect
+         style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+         id="rect3851"
+         width="12"
+         height="7"
+         x="-76.499878"
+         y="-177.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <g
+         transform="translate(-317,-410)"
+         id="g3853"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="129.49626"
+           x="-489.49979"
+           height="7.0035982"
+           width="17.999748"
+           id="rect3855"
+           style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="130.50006"
+           x="-488.50009"
+           height="4.9998937"
+           width="15.999757"
+           id="rect3857"
+           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+           rx="0"
+           ry="0" />
+      </g>
+      <rect
+         style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+         id="rect3859"
+         width="10"
+         height="5.0000305"
+         x="-75.499878"
+         y="-176.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         rx="0"
+         ry="0"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <g
+         id="g3861"
+         transform="translate(-377,-420)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           y="489.5"
+           x="186.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3863"
+           style="fill:url(#linearGradient4702);fill-opacity:1;stroke:url(#linearGradient4704);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="191.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3865"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="196.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3867"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="201.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3869"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           transform="scale(-1,-1)"
+           y="-491.5"
+           x="-209.49998"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3871"
+           style="fill:url(#linearGradient4706);fill-opacity:1;stroke:url(#linearGradient4708);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/align-left.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-left.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg11272"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-horisontal-left.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-left.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs11274">
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient4716"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient4714"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient4712"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient4710"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16"
+     inkscape:cy="14.269093"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="797"
+     inkscape:window-height="628"
+     inkscape:window-x="0"
+     inkscape:window-y="47" />
+  <metadata
+     id="metadata11277">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g4065"
+       transform="matrix(0,-1,1,0,8.9287758e-5,51.99998)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <g
+         id="g3883"
+         transform="translate(-127,-473)"
+         style="fill:#d3d7cf;stroke:#888a85;display:inline"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           transform="matrix(0,1,1,0,0,0)"
+           y="169.5"
+           x="475.50012"
+           height="7"
+           width="12"
+           id="rect3885"
+           style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           ry="0"
+           rx="0"
+           transform="matrix(0,1,1,0,0,0)"
+           y="170.5"
+           x="476.50012"
+           height="5.0000305"
+           width="10"
+           id="rect3887"
+           style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+      <g
+         id="g3889"
+         transform="translate(-97,-469)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="129.49626"
+           x="-489.49979"
+           height="7.0035982"
+           width="17.999748"
+           id="rect3891"
+           style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="130.50006"
+           x="-488.50009"
+           height="4.9998937"
+           width="15.999757"
+           id="rect3893"
+           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+           rx="0"
+           ry="0" />
+      </g>
+      <g
+         id="g3903"
+         transform="translate(-157,-488)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           y="489.5"
+           x="196.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3905"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           style="fill:url(#linearGradient4710);fill-opacity:1;stroke:url(#linearGradient4712);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
+           id="path3907"
+           sodipodi:nodetypes="cccc" />
+        <path
+           style="fill:url(#linearGradient4714);fill-opacity:1;stroke:url(#linearGradient4716);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
+           id="path3909"
+           sodipodi:nodetypes="cccc" />
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/align-middle.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-middle.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg10625"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-vertical-center.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-vertical-center.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs10627">
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient6962"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-395.9999,-981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient6960"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-395.9999,-981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient6958"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient6956"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16"
+     inkscape:cy="16"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="797"
+     inkscape:window-height="628"
+     inkscape:window-x="0"
+     inkscape:window-y="47" />
+  <metadata
+     id="metadata10630">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g6849"
+       transform="translate(-29.999893,91.000089)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <rect
+         style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect1933"
+         width="12"
+         height="7"
+         x="73.500122"
+         y="42.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <g
+         transform="translate(-97,-560)"
+         id="g2063"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="129.49626"
+           x="-489.49979"
+           height="7.0035982"
+           width="17.999748"
+           id="rect1935"
+           style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="130.50006"
+           x="-488.50009"
+           height="4.9998937"
+           width="15.999757"
+           id="rect1937"
+           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+           rx="0"
+           ry="0" />
+      </g>
+      <rect
+         style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect1939"
+         width="10"
+         height="5.0000305"
+         x="74.500122"
+         y="43.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         rx="0"
+         ry="0"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <g
+         id="g2992"
+         transform="translate(-157,-570)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           y="489.5"
+           x="186.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect2994"
+           style="fill:url(#linearGradient6956);fill-opacity:1;stroke:url(#linearGradient6958);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="191.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect2996"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="196.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect2998"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           y="489.5"
+           x="201.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3000"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           transform="scale(-1,-1)"
+           y="-491.5"
+           x="-209.49998"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3002"
+           style="fill:url(#linearGradient6960);fill-opacity:1;stroke:url(#linearGradient6962);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/align-right.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-right.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg11187"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-horisontal-right.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="TRUE"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-horisontal-right.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs11189">
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient4732"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient4730"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient4728"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient4726"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16"
+     inkscape:cy="16"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="797"
+     inkscape:window-height="628"
+     inkscape:window-x="0"
+     inkscape:window-y="47" />
+  <metadata
+     id="metadata11192">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g4025"
+       transform="matrix(0,-1,1,0,-60.999914,-198.00011)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <rect
+         style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+         id="rect3873"
+         width="12"
+         height="7"
+         x="-80.499878"
+         y="-207.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <rect
+         style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+         id="rect3875"
+         width="10"
+         height="5.0000305"
+         x="-79.499878"
+         y="-206.5"
+         transform="matrix(0,-1,1,0,0,0)"
+         rx="0"
+         ry="0"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <g
+         id="g3877"
+         transform="translate(-347,-409)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="129.49626"
+           x="-489.49979"
+           height="7.0035982"
+           width="17.999748"
+           id="rect3879"
+           style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="130.50006"
+           x="-488.50009"
+           height="4.9998937"
+           width="15.999757"
+           id="rect3881"
+           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+           rx="0"
+           ry="0" />
+      </g>
+      <g
+         id="g3919"
+         transform="translate(-407,-410)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90"
+         style="display:inline">
+        <rect
+           y="489.5"
+           x="196.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3921"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           style="fill:url(#linearGradient4726);fill-opacity:1;stroke:url(#linearGradient4728);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
+           id="path3923"
+           sodipodi:nodetypes="cccc" />
+        <path
+           style="fill:url(#linearGradient4730);fill-opacity:1;stroke:url(#linearGradient4732);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
+           id="path3925"
+           sodipodi:nodetypes="cccc" />
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/align-top.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/align-top.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22"
+   height="22"
+   id="svg10699"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/inkscape/22x22/actions"
+   sodipodi:docname="align-vertical-bottom.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/inkscape/22x22/actions/align-vertical-bottom.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs10701">
+    <linearGradient
+       id="linearGradient2968"
+       inkscape:collect="always">
+      <stop
+         id="stop2970"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2972"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2968"
+       id="linearGradient6954"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2974"
+       inkscape:collect="always">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient6952"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,395.9999,981)"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+    <linearGradient
+       id="linearGradient2986"
+       inkscape:collect="always">
+      <stop
+         id="stop2988"
+         offset="0"
+         style="stop-color:#ce5c00;stop-opacity:1" />
+      <stop
+         id="stop2990"
+         offset="1"
+         style="stop-color:#ce5c00;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2986"
+       id="linearGradient6950"
+       gradientUnits="userSpaceOnUse"
+       x1="187.60938"
+       y1="489.35938"
+       x2="186.93732"
+       y2="489.35938" />
+    <linearGradient
+       id="linearGradient2980"
+       inkscape:collect="always">
+      <stop
+         id="stop2982"
+         offset="0"
+         style="stop-color:#fcaf3e;stop-opacity:1" />
+      <stop
+         id="stop2984"
+         offset="1"
+         style="stop-color:#fcaf3e;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2980"
+       id="linearGradient6948"
+       gradientUnits="userSpaceOnUse"
+       x1="187.81554"
+       y1="489.54688"
+       x2="187.1716"
+       y2="489.54688" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="16"
+     inkscape:cy="16"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="22px"
+     height="22px"
+     inkscape:window-width="797"
+     inkscape:window-height="628"
+     inkscape:window-x="0"
+     inkscape:window-y="47" />
+  <metadata
+     id="metadata10704">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g6862"
+       transform="translate(-59.99998,90)"
+       inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <g
+         id="g3084"
+         transform="translate(-97,-563)"
+         style="fill:#d3d7cf;stroke:#888a85"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           transform="matrix(0,1,1,0,0,0)"
+           y="169.5"
+           x="475.50012"
+           height="7"
+           width="12"
+           id="rect3086"
+           style="fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           ry="0"
+           rx="0"
+           transform="matrix(0,1,1,0,0,0)"
+           y="170.5"
+           x="476.50012"
+           height="5.0000305"
+           width="10"
+           id="rect3088"
+           style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+      <g
+         id="g3090"
+         transform="translate(-67,-559)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="129.49626"
+           x="-489.49979"
+           height="7.0035982"
+           width="17.999748"
+           id="rect3092"
+           style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00024867;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
+        <rect
+           transform="matrix(0,-1,1,0,0,0)"
+           y="130.50006"
+           x="-488.50009"
+           height="4.9998937"
+           width="15.999757"
+           id="rect3094"
+           style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00024891;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+           rx="0"
+           ry="0" />
+      </g>
+      <g
+         id="g3262"
+         transform="translate(-127,-578)"
+         inkscape:export-filename="/home/lapo/Desktop/align-distribute.tar.gz_FILES/align-stuff.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <rect
+           y="489.5"
+           x="196.49989"
+           height="1.9999999"
+           width="3.0000916"
+           id="rect3264"
+           style="fill:#fcaf3e;fill-opacity:1;stroke:#ce5c00;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           style="fill:url(#linearGradient6948);fill-opacity:1;stroke:url(#linearGradient6950);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 197.49998,491.5 L 186.49989,491.5 L 186.49989,489.5 L 197.49998,489.5"
+           id="path3266"
+           sodipodi:nodetypes="cccc" />
+        <path
+           style="fill:url(#linearGradient6952);fill-opacity:1;stroke:url(#linearGradient6954);stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 198.49989,489.5 L 209.49998,489.5 L 209.49998,491.5 L 198.49989,491.5"
+           id="path3268"
+           sodipodi:nodetypes="cccc" />
+      </g>
+    </g>
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/bold.png has changed
Binary file htdocs/svg-edit/editor/images/cancel.png has changed
Binary file htdocs/svg-edit/editor/images/circle.png has changed
Binary file htdocs/svg-edit/editor/images/clear.png has changed
Binary file htdocs/svg-edit/editor/images/clone.png has changed
Binary file htdocs/svg-edit/editor/images/copy.png has changed
Binary file htdocs/svg-edit/editor/images/cut.png has changed
Binary file htdocs/svg-edit/editor/images/delete.png has changed
Binary file htdocs/svg-edit/editor/images/document-properties.png has changed
Binary file htdocs/svg-edit/editor/images/dropdown.gif has changed
Binary file htdocs/svg-edit/editor/images/ellipse.png has changed
Binary file htdocs/svg-edit/editor/images/eye.png has changed
Binary file htdocs/svg-edit/editor/images/fhpath.png has changed
Binary file htdocs/svg-edit/editor/images/flyouth.png has changed
Binary file htdocs/svg-edit/editor/images/flyup.gif has changed
Binary file htdocs/svg-edit/editor/images/freehand-circle.png has changed
Binary file htdocs/svg-edit/editor/images/freehand-square.png has changed
Binary file htdocs/svg-edit/editor/images/go-down.png has changed
Binary file htdocs/svg-edit/editor/images/go-up.png has changed
Binary file htdocs/svg-edit/editor/images/image.png has changed
Binary file htdocs/svg-edit/editor/images/italic.png has changed
Binary file htdocs/svg-edit/editor/images/line.png has changed
Binary file htdocs/svg-edit/editor/images/link_controls.png has changed
Binary file htdocs/svg-edit/editor/images/logo.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/logo.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 600 600"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   width="48"
+   height="48"
+   sodipodi:docname="logo.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   version="1.0"
+   inkscape:export-filename="logo.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <sodipodi:namedview
+     inkscape:window-height="858"
+     inkscape:window-width="911"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.352818"
+     inkscape:cx="27.728302"
+     inkscape:cy="25.018074"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:current-layer="a32" />
+  <defs
+     id="defs14280">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective71" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_16_"
+       x1="67.8452"
+       x2="144.5898"
+       y1="115.5361"
+       y2="115.5361">
+      <stop
+         id="stop780"
+         offset="0"
+         stop-color="#7D7D99" />
+      <stop
+         id="stop781"
+         offset="0.1798"
+         stop-color="#B1B1C5" />
+      <stop
+         id="stop782"
+         offset="0.3727"
+         stop-color="#BCBCC8" />
+      <stop
+         id="stop783"
+         offset="0.6825"
+         stop-color="#C8C8CB" />
+      <stop
+         id="stop784"
+         offset="1"
+         stop-color="#CCC" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)"
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_15_"
+       x1="-1401.459"
+       x2="-1354.6851"
+       y1="595.63092"
+       y2="699.47632">
+      <stop
+         id="stop770"
+         offset="0"
+         stop-color="#FFA700" />
+      <stop
+         id="stop771"
+         offset="0.7753"
+         stop-color="#FFD700" />
+      <stop
+         id="stop772"
+         offset="1"
+         stop-color="#FF9200" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)"
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_14_"
+       x1="-1336.4497"
+       x2="-1325.3219"
+       y1="635.79492"
+       y2="622.53333">
+      <stop
+         id="stop763"
+         offset="0"
+         stop-color="#FFC957" />
+      <stop
+         id="stop764"
+         offset="1"
+         stop-color="#FF6D00" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_13_"
+       x1="65.094704"
+       x2="137.6021"
+       y1="-0.79540002"
+       y2="160.1823">
+      <stop
+         id="stop750"
+         offset="0"
+         stop-color="#FFA700" />
+      <stop
+         id="stop751"
+         offset="0.7753"
+         stop-color="#FFD700" />
+      <stop
+         id="stop752"
+         offset="1"
+         stop-color="#FF794B" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)"
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_12_"
+       x1="-1375.9844"
+       x2="-1355.0455"
+       y1="685.38092"
+       y2="706.32172">
+      <stop
+         id="stop743"
+         offset="0"
+         stop-color="#F8F1DC" />
+      <stop
+         id="stop744"
+         offset="1"
+         stop-color="#D6A84A" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.1991,0.98,-0.98,0.1991,91.6944,573.565)"
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_11_"
+       x1="-481.70071"
+       x2="-360.24561"
+       y1="-94.419403"
+       y2="-164.22141">
+      <stop
+         id="stop736"
+         offset="0"
+         stop-color="#900" />
+      <stop
+         id="stop737"
+         offset="1"
+         stop-color="#7C0000" />
+    </linearGradient>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath4418">
+      <rect
+         height="79.958374"
+         id="rect4420"
+         stroke-miterlimit="4"
+         style="fill:none;stroke:#000000;stroke-width:0.14421287;stroke-miterlimit:4;stroke-dasharray:none"
+         transform="scale(-1,1)"
+         width="73.952118"
+         x="-196.68831"
+         y="126.58712" />
+    </clipPath>
+  </defs>
+  <metadata
+     id="metadata30">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <a
+     xlink:href="http://svg-edit.googlecode.com/"
+     xlink:title="SVG-edit, an in-browser vector graphics editor"
+     target="_blank"
+     id="a32">
+    <path
+       sodipodi:type="star"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3216"
+       sodipodi:sides="8"
+       sodipodi:cx="239.79607"
+       sodipodi:cy="346.96844"
+       sodipodi:r1="194.03661"
+       sodipodi:r2="155.59306"
+       sodipodi:arg1="0.78539816"
+       sodipodi:arg2="1.1780972"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 377.00067,484.17304 L 299.33895,490.71769 L 239.79607,541.00505 L 180.25318,490.71769 L 102.59147,484.17305 L 96.04682,406.51133 L 45.75946,346.96845 L 96.046819,287.42556 L 102.59147,209.76385 L 180.25318,203.2192 L 239.79607,152.93184 L 299.33895,203.2192 L 377.00067,209.76384 L 383.54531,287.42556 L 433.83267,346.96844 L 383.54531,406.51133 L 377.00067,484.17304 z"
+       transform="translate(4.1586051,6.9957853)" />
+    <path
+       d="M 257.74,558.2 C 282.68,551.18 299.44,533.03 303.3,508.86 L 304.6,500.74 L 310.09,504.65 C 342.6,527.8 385.95,516.69 401.92,481.11 C 410.74,461.44 406.88,429.74 394.39,419.38 C 389.52,415.34 390.73,414.03 400.54,412.71 C 463.81,404.2 466.02,308.53 403.26,294.99 C 389.53,292.02 390.07,292.74 395.81,285.17 C 435.22,233.14 367.98,163.64 313.59,200.18 L 305.09,205.89 L 302.14,193.86 C 286.67,130.77 193.37,133.52 184.62,197.33 C 183.22,207.55 183.54,207.42 175.45,201.25 C 145.54,178.44 96.024,193.52 84.229,229.04 C 77.621,248.93 81.839,276.52 93.036,286.66 C 98.393,291.5 97.7,292.63 88.496,294.06 C 22.466,304.29 22.003,403.73 87.943,412.77 L 96.572,413.95 L 91.187,421.94 C 63.478,463.02 91.34,516.89 140.25,516.79 C 154.94,516.76 170.97,511.38 177.33,504.36 C 181.99,499.22 183.95,499.74 183.95,506.13 C 183.95,538.55 224.9,567.45 257.74,558.2 L 257.74,558.2 z M 224.97,526.08 C 211.13,516.23 207.03,494.21 216.63,481.24 C 220.49,476.01 220.78,473.32 220.78,442.14 L 220.78,408.66 L 196.55,432.83 C 177.87,451.47 172.32,458.16 172.32,462.07 C 172.32,481.92 139.36,496.53 122.68,484.07 C 99.738,466.94 105.5,432.15 132.4,425.3 C 138.8,423.67 144.87,418.74 163.57,399.95 L 186.8,376.62 L 154.85,376.63 C 124.63,376.64 122.38,376.9 113.36,381.47 C 76.809,400.02 46.091,351.65 78.652,326.81 C 88.187,319.54 106.02,319.02 115.45,325.74 C 121.2,329.85 123.45,330.1 154.18,330.1 L 186.8,330.1 L 163.79,307.04 C 147.4,290.61 139.05,283.62 134.78,282.77 C 106.14,277.04 98.685,240.4 122.56,222.71 C 139.4,210.23 172.44,224.79 172.28,244.63 C 172.25,248.57 177.44,254.67 196.02,272.54 L 219.81,295.41 L 220.34,263.32 C 220.84,233.01 220.64,230.91 216.67,225.55 C 202.3,206.11 216.23,177.52 241.09,175.46 C 267.18,173.29 284.31,199.14 272.29,222.54 C 267.54,231.79 267.31,233.68 267.3,264.18 L 267.29,296.13 L 290.36,273.12 C 306.39,257.14 313.79,248.33 314.59,244.3 C 320.55,214.53 361.13,208.27 375.2,234.95 C 385.62,254.7 375.71,276.27 353.68,281.82 C 346.89,283.53 341.33,288 322.38,307 L 299.33,330.1 L 332.92,330.1 C 363.2,330.1 367.04,329.73 371.86,326.3 C 384.69,317.16 402.12,319.56 413.39,332.03 C 438.43,359.76 402.17,402.01 371.86,380.43 C 367.04,377 363.2,376.62 332.92,376.62 L 299.33,376.62 L 322.38,399.72 C 341.33,418.73 346.89,423.2 353.68,424.91 C 390.29,434.13 386.87,485.55 349.44,488.65 C 332.45,490.06 313.81,474.97 313.81,459.8 C 313.81,458.26 303.34,446.56 290.55,433.8 L 267.29,410.6 L 267.3,442.55 C 267.31,472.77 267.57,475.02 272.15,484.03 C 287.66,514.61 252.66,545.8 224.97,526.08 L 224.97,526.08 z"
+       id="path34"
+       style="fill:#000000" />
+    <g
+       clip-path="url(#clipPath4418)"
+       transform="matrix(-4.6717475,0,0,4.6717475,1143.4575,-562.74962)"
+       id="g36">
+      <path
+         d="M 191.92,195.98 C 180.31,159.86 178.21,153.31 177.06,151.92 C 177.18,152 177.35,152.1 177.35,152.1 L 98.804,64.643 C 94.609,59.993 84.799,64.999 77.449,71.619 C 70.166,78.161 64.129,87.392 68.079,92.183 L 147.02,179.73 L 147.56,179.82 L 185.32,197.42 L 193.01,199.79 L 191.92,195.98 L 191.92,195.98 z"
+         id="path38"
+         style="opacity:0.2" />
+      <path
+         d="M 193.56,193.52 C 181.95,157.39 179.84,150.85 178.7,149.45 C 178.82,149.52 178.99,149.63 178.99,149.63 L 100.44,62.175 C 96.245,57.524 86.429,62.53 79.083,69.15 C 71.802,75.695 65.763,84.923 69.715,89.716 L 148.66,177.26 L 149.19,177.36 L 186.96,194.95 L 194.64,197.32 L 193.56,193.52 L 193.56,193.52 z"
+         id="path40"
+         style="opacity:0.2" />
+      <path
+         d="M 186.77,191.05 C 175.16,154.92 173.06,148.38 171.91,146.98 C 172.03,147.06 172.2,147.16 172.2,147.16 L 93.653,59.704 C 89.461,55.054 79.644,60.063 72.299,66.682 C 65.016,73.224 58.978,82.453 62.93,87.247 L 141.87,174.79 L 142.41,174.88 L 180.18,192.48 L 187.86,194.85 L 186.77,191.05 L 186.77,191.05 z"
+         id="path42"
+         style="opacity:0.2" />
+      <path
+         d="M 186.43,189.36 C 174.82,153.23 172.72,146.69 171.57,145.29 C 171.69,145.37 171.86,145.47 171.86,145.47 L 93.314,58.016 C 89.115,53.365 79.299,58.373 71.955,64.993 C 64.672,71.536 58.633,80.767 62.585,85.559 L 141.53,173.1 L 142.06,173.2 L 179.83,190.8 L 187.52,193.16 L 186.43,189.36 L 186.43,189.36 z"
+         id="path44"
+         style="fill:#ffffff" />
+      <path
+         d="M 186.43,189.36 C 174.82,153.23 172.72,146.69 171.57,145.29 C 171.69,145.37 171.86,145.47 171.86,145.47 L 93.314,58.016 C 89.115,53.365 79.299,58.373 71.955,64.993 C 64.672,71.536 58.633,80.767 62.585,85.559 L 141.53,173.1 L 142.06,173.2 L 179.83,190.8 L 187.52,193.16 L 186.43,189.36 L 186.43,189.36 z"
+         id="path46"
+         style="fill:url(#XMLID_11_)" />
+      <path
+         d="M 166.97,147.76 L 180.69,185.89 L 144.32,167.99 L 144.49,167.84 C 144.24,167.76 143.99,167.66 143.79,167.52 L 143.66,167.64 L 68.36,84.072 L 68.483,83.968 C 66.237,81.478 69.515,74.874 75.791,69.216 C 82.071,63.564 88.971,60.997 91.216,63.483 L 166.51,147.05 L 166.97,147.76 L 166.97,147.76 z"
+         id="path48"
+         style="fill:url(#XMLID_12_)" />
+      <path
+         d="M 148.65,170.12 C 150.73,169.75 153.29,168.64 155.9,166.98 C 157.52,165.96 159.18,164.7 160.8,163.24 C 162.26,161.94 163.54,160.57 164.64,159.23 C 166.72,156.7 167.96,154.02 168.42,151.8 L 166.97,147.76 L 166.5,147.05 L 91.707,64.028 C 92.315,66.268 90.745,69.966 87.644,73.768 C 86.51,75.157 85.203,76.557 83.699,77.909 C 82.125,79.328 80.504,80.561 78.932,81.563 C 74.439,84.434 70.304,85.491 68.384,84.049 L 68.359,84.07 L 143.66,167.64 L 143.79,167.52 C 143.99,167.66 144.24,167.76 144.49,167.84 L 144.32,167.99 L 148.65,170.12 L 148.65,170.12 z"
+         id="path50"
+         style="fill:url(#XMLID_13_)" />
+      <path
+         d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z"
+         id="path52"
+         style="fill:#ffffff" />
+      <path
+         d="M 75.79,69.215 C 82.07,63.563 88.97,60.996 91.215,63.482 L 108.18,82.31 L 109.33,108.8 L 91.355,109.58 L 68.359,84.071 L 68.482,83.967 C 66.236,81.477 69.514,74.874 75.79,69.215 L 75.79,69.215 z"
+         id="path54"
+         style="fill:#ffffff" />
+      <path
+         d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z"
+         id="path56"
+         style="fill:#ffffff" />
+      <path
+         d="M 75.79,69.215 C 82.07,63.563 88.97,60.996 91.215,63.482 L 108.18,82.31 L 109.33,108.8 L 91.355,109.58 L 68.359,84.071 L 68.482,83.967 C 66.236,81.477 69.514,74.874 75.79,69.215 L 75.79,69.215 z"
+         id="path58"
+         style="fill:url(#XMLID_14_)" />
+      <path
+         d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z"
+         id="path60"
+         style="fill:url(#XMLID_15_)" />
+      <path
+         d="M 74.357,90.713 C 74.357,90.713 80.393,90.501 85.042,87.531 C 86.584,86.548 88.174,85.338 89.719,83.945 C 91.196,82.619 92.479,81.244 93.592,79.881 C 96.52,76.292 98.061,72.793 97.641,70.574 L 90.776,62.957 L 90.753,62.981 C 92.367,64.923 90.855,69.177 87.276,73.565 C 86.163,74.927 84.88,76.303 83.404,77.628 C 81.859,79.021 80.268,80.232 78.727,81.214 C 74.079,84.185 69.817,85.181 68.084,83.408 L 67.846,83.625 L 141.1,164.94 C 141.15,165.01 142.85,166.9 143.25,167.34 C 143.59,167.72 144.05,167.97 144.59,168.11 L 74.357,90.713 L 74.357,90.713 z"
+         id="path62"
+         style="fill:url(#XMLID_16_)" />
+      <path
+         d="M 172.04,175.35 C 170.4,176.83 168.73,178.12 167.09,179.19 L 180.69,185.89 L 175.6,171.74 C 174.54,172.95 173.35,174.18 172.04,175.35 z"
+         id="path64"
+         style="fill:#003333" />
+      <path
+         d="M 163.12,157.05 L 86.968,73.93 C 87.068,73.81 87.181,73.688 87.275,73.566 C 88.703,71.814 89.795,70.076 90.5,68.508 L 166.27,151.22 C 165.72,153.04 164.67,155.08 163.12,157.05 L 163.12,157.05 z"
+         id="path66"
+         style="opacity:0.5;fill:#ffffff" />
+      <path
+         d="M 87.275,73.566 C 87.909,72.792 88.464,72.018 88.969,71.266 L 164.98,154.24 C 164.41,155.3 163.7,156.39 162.84,157.43 C 162.09,158.33 161.27,159.24 160.37,160.13 L 84.152,76.932 C 85.316,75.824 86.361,74.692 87.275,73.566 L 87.275,73.566 z"
+         id="path68"
+         style="opacity:0.5;fill:#ffffff" />
+    </g>
+  </a>
+</svg>
Binary file htdocs/svg-edit/editor/images/move_bottom.png has changed
Binary file htdocs/svg-edit/editor/images/move_top.png has changed
Binary file htdocs/svg-edit/editor/images/none.png has changed
Binary file htdocs/svg-edit/editor/images/open.png has changed
Binary file htdocs/svg-edit/editor/images/paste.png has changed
Binary file htdocs/svg-edit/editor/images/path.png has changed
Binary file htdocs/svg-edit/editor/images/polygon.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/polygon.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="draw-polygon.svg"
+   sodipodi:docbase="/home/andreas/projekt/tango/22"
+   inkscape:version="0.42"
+   id="svg8728"
+   height="22.000000px"
+   width="22.000000px"
+   inkscape:export-filename="/home/andreas/projekt/tango/22/draw-polygon.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3941">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3943" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3945" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6581">
+      <stop
+         style="stop-color:#eeeeec;stop-opacity:1;"
+         offset="0"
+         id="stop6583" />
+      <stop
+         style="stop-color:#e0e0de;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6585" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient14920">
+      <stop
+         id="stop14922"
+         offset="0"
+         style="stop-color:#5a7aa4;stop-opacity:1;" />
+      <stop
+         id="stop14924"
+         offset="1.0000000"
+         style="stop-color:#1f2b3a;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13390">
+      <stop
+         id="stop13392"
+         offset="0.0000000"
+         style="stop-color:#81a2cd;stop-opacity:1.0000000;" />
+      <stop
+         id="stop13394"
+         offset="1.0000000"
+         style="stop-color:#2a415f;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10325">
+      <stop
+         id="stop10327"
+         offset="0"
+         style="stop-color:#5a7aa4;stop-opacity:1;" />
+      <stop
+         id="stop10329"
+         offset="1.0000000"
+         style="stop-color:#455e7e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="39.486301"
+       x2="37.746555"
+       y1="23.992306"
+       x1="23.598076"
+       gradientTransform="matrix(0.363308,0,0,0.363571,1.976073,1.180651)"
+       id="linearGradient13217"
+       xlink:href="#linearGradient6581"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3941"
+       id="radialGradient3947"
+       cx="2.25"
+       cy="16"
+       fx="2.25"
+       fy="16"
+       r="16.875"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,-5.774893e-15,10.66667)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6581"
+       id="linearGradient2398"
+       x1="10.769515"
+       y1="8.7196503"
+       x2="15.923767"
+       y2="15.039417"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6581"
+       id="linearGradient2403"
+       gradientUnits="userSpaceOnUse"
+       x1="10.769515"
+       y1="8.7196503"
+       x2="15.923767"
+       y2="15.039417"
+       gradientTransform="matrix(0.874941,0.000000,0.000000,0.868551,1.339139,1.349650)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6581"
+       id="linearGradient2405"
+       gradientUnits="userSpaceOnUse"
+       x1="10.769515"
+       y1="8.7196503"
+       x2="15.923767"
+       y2="15.039417"
+       gradientTransform="matrix(1.001575,0.000000,0.000000,1.000000,-3.040037e-3,0.000000)" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="25"
+     inkscape:window-x="0"
+     inkscape:window-height="949"
+     inkscape:window-width="1280"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="10.249014"
+     inkscape:cx="16.435231"
+     inkscape:zoom="15.999999"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.08235294"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:showpageshadow="false"
+     stroke="#888a85" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Draw Rectangle</dc:title>
+        <dc:date>2005-10-10</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>draw</rdf:li>
+            <rdf:li>rectangle</rdf:li>
+            <rdf:li>square</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.60000000;color:#000000;fill:url(#radialGradient3947);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
+       id="path2193"
+       sodipodi:cx="2.2500000"
+       sodipodi:cy="16.000000"
+       sodipodi:rx="16.875000"
+       sodipodi:ry="5.6250000"
+       d="M 19.125000 16.000000 A 16.875000 5.6250000 0 1 1  -14.625000,16.000000 A 16.875000 5.6250000 0 1 1  19.125000 16.000000 z"
+       transform="matrix(0.503704,0.000000,0.000000,0.349014,9.366667,12.45257)" />
+    <path
+       style="fill:url(#linearGradient2405);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:1.0000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 10.376363,3.6237647 L 18.439333,9.5822222 L 15.644242,18.503298 L 5.3933717,18.503298 L 2.5694122,9.5814367 L 10.376363,3.6237647 z "
+       id="path1661"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:url(#linearGradient2403);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#fdfdfb;stroke-width:0.99999976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 10.383801,4.6223366 L 17.428917,9.8682235 L 14.894231,17.502140 L 6.1335005,17.494329 L 3.6135882,9.9131875 L 10.383801,4.6223366 z "
+       id="path2401"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/rect.png has changed
Binary file htdocs/svg-edit/editor/images/redo.png has changed
Binary file htdocs/svg-edit/editor/images/reorient.png has changed
Binary file htdocs/svg-edit/editor/images/rotate.png has changed
Binary file htdocs/svg-edit/editor/images/save.png has changed
Binary file htdocs/svg-edit/editor/images/select.png has changed
Binary file htdocs/svg-edit/editor/images/select_node.png has changed
Binary file htdocs/svg-edit/editor/images/sep.png has changed
Binary file htdocs/svg-edit/editor/images/shape_group.png has changed
Binary file htdocs/svg-edit/editor/images/shape_ungroup.png has changed
Binary file htdocs/svg-edit/editor/images/source.png has changed
Binary file htdocs/svg-edit/editor/images/spinbtn_updn_big.png has changed
Binary file htdocs/svg-edit/editor/images/square.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/svg_edit_icons.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,732 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+<!-- All images except logo created with SVG-edit - http://svg-edit.googlecode.com/ -->
+
+<g id="logo">
+	<svg version="1.0"
+		 id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:cc="http://creativecommons.org/ns#" inkscape:export-ydpi="90" inkscape:export-xdpi="90" xmlns:svg="http://www.w3.org/2000/svg"
+		 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+		 viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve">
+	<a id="a32" xlink:href="http://svg-edit.googlecode.com/"  xlink:title="SVG-edit, an in-browser vector graphics editor">
+		
+			<path id="path3216" inkscape:randomized="0" inkscape:rounded="0" inkscape:flatsided="false" sodipodi:arg2="1.1780972" sodipodi:arg1="0.78539816" sodipodi:r2="155.59306" sodipodi:r1="194.03661" sodipodi:cy="346.96844" sodipodi:cx="239.79607" sodipodi:sides="8" sodipodi:type="star" fill="#FFFFFF" d="
+			M30.5,39.3l-6.2,0.5l-4.8,4l-4.8-4l-6.2-0.5L8,33.1l-4-4.8l4-4.8l0.5-6.2l6.2-0.5l4.8-4l4.8,4l6.2,0.5l0.5,6.2l4,4.8l-4,4.8
+			L30.5,39.3z"/>
+		<path id="path34" d="M20.6,44.7c2-0.6,3.3-2,3.6-3.9l0.1-0.7l0.4,0.3c2.6,1.9,6.1,1,7.3-1.9c0.7-1.6,0.4-4.1-0.6-4.9
+			c-0.4-0.3-0.3-0.4,0.5-0.5c5.1-0.7,5.2-8.3,0.2-9.4c-1.1-0.2-1.1-0.2-0.6-0.8c3.2-4.2-2.2-9.7-6.6-6.8l-0.7,0.5l-0.2-1
+			c-1.2-5-8.7-4.8-9.4,0.3c-0.1,0.8-0.1,0.8-0.7,0.3c-2.4-1.8-6.4-0.6-7.3,2.2c-0.5,1.6-0.2,3.8,0.7,4.6c0.4,0.4,0.4,0.5-0.4,0.6
+			c-5.3,0.8-5.3,8.8,0,9.5l0.7,0.1l-0.4,0.6c-2.2,3.3,0,7.6,3.9,7.6c1.2,0,2.5-0.4,3-1c0.4-0.4,0.5-0.4,0.5,0.1
+			C14.7,43.1,18,45.4,20.6,44.7L20.6,44.7z M18,42.1c-1.1-0.8-1.4-2.5-0.7-3.6c0.3-0.4,0.3-0.6,0.3-3.1v-2.7l-1.9,1.9
+			c-1.5,1.5-1.9,2-1.9,2.3c0,1.6-2.6,2.8-4,1.8C8,37.4,8.4,34.6,10.6,34c0.5-0.1,1-0.5,2.5-2l1.9-1.9l-2.6,0c-2.4,0-2.6,0-3.3,0.4
+			c-2.9,1.5-5.4-2.4-2.8-4.4c0.8-0.6,2.2-0.6,2.9-0.1c0.5,0.3,0.6,0.3,3.1,0.3h2.6l-1.8-1.8c-1.3-1.3-2-1.9-2.3-1.9
+			c-2.3-0.5-2.9-3.4-1-4.8c1.3-1,4,0.2,4,1.8c0,0.3,0.4,0.8,1.9,2.2l1.9,1.8l0-2.6c0-2.4,0-2.6-0.3-3c-1.1-1.6,0-3.8,2-4
+			c2.1-0.2,3.5,1.9,2.5,3.8c-0.4,0.7-0.4,0.9-0.4,3.3l0,2.6l1.8-1.8c1.3-1.3,1.9-2,1.9-2.3c0.5-2.4,3.7-2.9,4.8-0.7
+			c0.8,1.6,0,3.3-1.7,3.7c-0.5,0.1-1,0.5-2.5,2l-1.8,1.8h2.7c2.4,0,2.7,0,3.1-0.3c1-0.7,2.4-0.5,3.3,0.5c2,2.2-0.9,5.6-3.3,3.9
+			c-0.4-0.3-0.7-0.3-3.1-0.3h-2.7l1.8,1.8c1.5,1.5,2,1.9,2.5,2c2.9,0.7,2.7,4.9-0.3,5.1c-1.4,0.1-2.8-1.1-2.8-2.3
+			c0-0.1-0.8-1.1-1.9-2.1l-1.9-1.9l0,2.6c0,2.4,0,2.6,0.4,3.3C23,41.2,20.2,43.7,18,42.1L18,42.1z"/>
+		<g>
+			<g id="g36" transform="matrix(-4.6717475,0,0,4.6717475,1143.4575,-562.74962)">
+				<path id="path38" opacity="0.2" enable-background="new    " d="M240.5,126.5c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
+					c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.5,126.5L240.5,126.5z"/>
+				<path id="path40" opacity="0.2" enable-background="new    " d="M240.7,126.3c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
+					c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.7,126.3L240.7,126.3z"/>
+				<path id="path42" opacity="0.2" enable-background="new    " d="M240.1,126.1c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
+					c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126.1L240.1,126.1z"/>
+				<path id="path44" fill="#FFFFFF" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6
+					c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/>
+				
+					<linearGradient id="path46_1_" gradientUnits="userSpaceOnUse" x1="251.6057" y1="30.2918" x2="373.0601" y2="100.0934" gradientTransform="matrix(-7.441159e-02 -0.3663 0.3663 -7.441159e-02 239.8726 211.8456)">
+					<stop  offset="0" style="stop-color:#990000"/>
+					<stop  offset="1" style="stop-color:#7C0000"/>
+				</linearGradient>
+				<path id="path46" fill="url(#path46_1_)" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6
+					c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/>
+				
+					<linearGradient id="path48_1_" gradientUnits="userSpaceOnUse" x1="448.9506" y1="-141.7113" x2="469.8885" y2="-162.6511" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
+					<stop  offset="0" style="stop-color:#F8F1DC"/>
+					<stop  offset="1" style="stop-color:#D6A84A"/>
+				</linearGradient>
+				<path id="path48" fill="url(#path48_1_)" d="M238.5,122.6l1.1,3.1l-2.9-1.4l0,0c0,0,0,0-0.1,0l0,0l-6-6.7l0,0
+					c-0.2-0.2,0.1-0.7,0.6-1.2c0.5-0.5,1.1-0.7,1.2-0.5L238.5,122.6L238.5,122.6L238.5,122.6z"/>
+				
+					<linearGradient id="path50_1_" gradientUnits="userSpaceOnUse" x1="473.214" y1="-2.063" x2="545.7217" y2="-163.0414" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)">
+					<stop  offset="0" style="stop-color:#FFA700"/>
+					<stop  offset="0.7753" style="stop-color:#FFD700"/>
+					<stop  offset="1" style="stop-color:#FF794B"/>
+				</linearGradient>
+				<path id="path50" fill="url(#path50_1_)" d="M237.1,124.4c0.2,0,0.4-0.1,0.6-0.3c0.1-0.1,0.3-0.2,0.4-0.3
+					c0.1-0.1,0.2-0.2,0.3-0.3c0.2-0.2,0.3-0.4,0.3-0.6l-0.1-0.3l0-0.1l-6-6.6c0,0.2-0.1,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3
+					c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.8,0.2l0,0l6,6.7l0,0c0,0,0,0,0.1,0l0,0L237.1,124.4L237.1,124.4z"/>
+				<path id="path52" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
+					c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
+					c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
+				<path id="path54" fill="#FFFFFF" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0
+					C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/>
+				<path id="path56" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
+					c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
+					c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
+				
+					<linearGradient id="path58_1_" gradientUnits="userSpaceOnUse" x1="440.489" y1="-131.0965" x2="451.6169" y2="-117.8349" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
+					<stop  offset="0" style="stop-color:#FFC957"/>
+					<stop  offset="1" style="stop-color:#FF6D00"/>
+				</linearGradient>
+				<path id="path58" fill="url(#path58_1_)" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0
+					C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/>
+				
+					<linearGradient id="path60_1_" gradientUnits="userSpaceOnUse" x1="454.4041" y1="-122.501" x2="501.1769" y2="-226.3438" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
+					<stop  offset="0" style="stop-color:#FFA700"/>
+					<stop  offset="0.7753" style="stop-color:#FFD700"/>
+					<stop  offset="1" style="stop-color:#FF9200"/>
+				</linearGradient>
+				<path id="path60" fill="url(#path60_1_)" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3
+					c0.1-0.1,0.2-0.2,0.3-0.3c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3
+					c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
+				
+					<linearGradient id="path62_1_" gradientUnits="userSpaceOnUse" x1="472.6249" y1="-26.9638" x2="549.3671" y2="-26.9638" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)">
+					<stop  offset="0" style="stop-color:#7D7D99"/>
+					<stop  offset="0.1798" style="stop-color:#B1B1C5"/>
+					<stop  offset="0.3727" style="stop-color:#BCBCC8"/>
+					<stop  offset="0.6825" style="stop-color:#C8C8CB"/>
+					<stop  offset="1" style="stop-color:#CCCCCC"/>
+				</linearGradient>
+				<path id="path62" fill="url(#path62_1_)" d="M231.1,118.1c0,0,0.5,0,0.9-0.3c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
+					c0.2-0.3,0.4-0.6,0.3-0.7l-0.5-0.6l0,0c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
+					c-0.4,0.2-0.7,0.3-0.9,0.2l0,0l5.9,6.5c0,0,0.1,0.2,0.2,0.2c0,0,0.1,0.1,0.1,0.1L231.1,118.1L231.1,118.1z"/>
+				<path id="path64" fill="#003333" d="M238.9,124.8c-0.1,0.1-0.3,0.2-0.4,0.3l1.1,0.5l-0.4-1.1C239.1,124.7,239,124.8,238.9,124.8z
+					"/>
+				<path id="path66" opacity="0.5" fill="#FFFFFF" enable-background="new    " d="M238.2,123.4l-6.1-6.6c0,0,0,0,0,0
+					c0.1-0.1,0.2-0.3,0.3-0.4l6.1,6.6C238.4,123.1,238.4,123.2,238.2,123.4L238.2,123.4z"/>
+				<path id="path68" opacity="0.5" fill="#FFFFFF" enable-background="new    " d="M232.2,116.7c0.1-0.1,0.1-0.1,0.1-0.2l6.1,6.6
+					c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.1-0.2,0.2l-6.1-6.7C232,116.9,232.1,116.8,232.2,116.7L232.2,116.7z"/>
+			</g>
+		</g>
+	</a>
+	</svg>
+</g>
+
+
+<g id="select">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	  <path stroke="#ffffff" fill="#000000" id="svg_13" d="m7.38168,2.46948l0.07502,17.03258l3.30083,-2.62617l2.62566,5.62751l4.20105,-2.62617l-3.30082,-4.80214l4.57614,-0.37517l-11.47787,-12.23044z"/>
+	</svg>
+</g>
+
+<g id="select_node">
+	<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <circle stroke="#0000ff" fill="#00ffff" id="svg_44" r="3.87891" cy="5.3" cx="8.7" stroke-width="1.5"/>
+	  <path d="m9.18161,5.6695l0.07763,15.16198l3.41588,-2.33775l2.71718,5.00947l4.34748,-2.33775l-3.41587,-4.27474l4.73565,-0.33397l-11.87794,-10.88723z" id="svg_13" fill="#000000" stroke="#ffffff"/>
+	</svg>
+</g>
+
+<g id="square">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs>
+  <linearGradient id="svg_2" x1="0.36328" y1="0.10156" x2="1" y2="1">
+   <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
+   <stop offset="1" stop-color="#3b7e9b" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <rect x="1.5" y="1.5" width="20" height="20" id="svg_1" fill="url(#svg_2)" stroke="#000000"/>
+ </svg>
+</g>
+
+<g id="rect">
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
+   <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
+   <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
+  </linearGradient>
+ </defs>
+  <rect transform="matrix(1, 0, 0, 1, 0, 0)" stroke="#000000" fill="url(#svg_2)" id="svg_1" height="12" width="20" y="5.5" x="1.5"/>
+ </svg>
+</g>
+
+<g id="fh_rect">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
+
+   <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
+   <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
+  </linearGradient>
+  <linearGradient y2="0.3945" x2="0.6132" y1="0.1093" x1="0.3046" id="svg_9">
+   <stop stop-opacity="1" stop-color="#f9d225" offset="0"/>
+   <stop stop-opacity="1" stop-color="#bf5f00" offset="1"/>
+  </linearGradient>
+ </defs>
+  <rect stroke="#000000" stroke-width="2" fill="url(#svg_2)" id="svg_1" height="50" width="50" y="0.75" x="1.25"/>
+  <path stroke-width="2" stroke="#000000" fill="url(#svg_9)" id="svg_2" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/>
+  <path stroke-width="2" stroke="#000000" fill="#fce0a9" id="svg_10" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/>
+  <path id="svg_11" stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/>
+</svg>
+</g>
+
+
+<g id="circle">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" id="svgzoom">
+ <defs>
+  <linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
+   <stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
+   <stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
+  </linearGradient>
+ </defs>
+ <g>
+  <circle stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" r="23" cy="27" cx="27"/>
+ </g>
+</svg>
+</g>
+
+<g id="ellipse">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" id="svgzoom">
+ <defs>
+  <linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
+   <stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
+   <stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
+  </linearGradient>
+ </defs>
+ <g>
+  <ellipse stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="15" cy="27" cx="27"/>
+ </g>
+</svg>
+</g>
+
+<g id="fh_ellipse">
+<svg viewBox="0 0 52 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
+   <stop offset="0" stop-color="#f9d225" stop-opacity="1"/>
+   <stop offset="1" stop-color="#bf5f00" stop-opacity="1"/>
+  </linearGradient>
+  <linearGradient id="svg_4" x1="0.17188" y1="0.1875" x2="1" y2="1">
+   <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
+   <stop offset="1" stop-color="#ff6666" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <ellipse stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="12" cy="37" cx="27"/>
+  <path d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5" id="svg_2" fill="url(#svg_9)" stroke="#000000" stroke-width="2"/>
+  <path d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z" id="svg_10" fill="#fce0a9" stroke="#000000" stroke-width="2"/>
+  <path d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" id="svg_11"/>
+ </svg>
+</g>
+
+<g id="pencil">
+<svg id="svgzoom" viewBox="0 0 48 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs>
+   <linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
+    <stop offset="0.0" stop-color="#f9d225" stop-opacity="1"/>
+    <stop offset="1.0" stop-color="#bf5f00" stop-opacity="1"/>
+   </linearGradient>
+  </defs>
+  <path d="M31.5,0 l-8.75,20.25 l0.75,24 l16.5,-16.5 l6,-12.5" id="svg_2" fill="url(#svg_9)" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
+  <path d="M39.5,28.5 c-2,-9.25 -10.25,-11.75 -17,-7.4375 l0.4843,24.4414z" id="svg_10" fill="#fce0a9" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
+  <path d="M26.9318,41.1745 c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905 l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1" id="svg_11"/>
+  <path d="M2.3132,4.6197 c12.4998,-1.6891 10.4729,7.0945 0,21.6215 c22.9729,-4.0539 12.1620,5.4053 12.1620,13.1756 c-0.3377,4.0539 8.7836,21.9594 26.0135,-1.3513" id="svg_12" fill="none" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
+</svg>
+</g>
+
+<g id="pen">
+	<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	 <defs>
+	  <linearGradient id="svg_16" x1="0.46484" y1="0.15625" x2="0.9375" y2="0.39453">
+	   <stop offset="0" stop-color="#f2feff" stop-opacity="1"/>
+	   <stop offset="1" stop-color="#14609b" stop-opacity="1"/>
+	  </linearGradient>
+	  <linearGradient id="svg_19" x1="0.18359" y1="0.26172" x2="0.77734" y2="0.56641">
+	   <stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
+	   <stop offset="1" stop-color="#fce564" stop-opacity="1"/>
+	  </linearGradient>
+	 </defs>
+	  <line x1="0.99844" y1="1.49067" x2="12.97691" y2="21.14149" id="svg_5" stroke="#000000" fill="none"/>
+	  <path d="m14.05272,13.68732l-1.46451,7.52632l4.03769,-6.32571" id="svg_6" fill="#a0a0a0" stroke="#000000"/>
+	  <path d="m13.61215,10.26563c-0.38567,1.05257 -0.60723,2.40261 -0.50403,3.125l4.33468,1.81452c0.46153,-0.30769 1.6129,-1.71371 1.6129,-2.52016" id="svg_7" fill="url(#svg_19)" stroke="#000000"/>
+	  <path d="m16.61335,1.00028l-3.67325,8.60247l7.10285,3.47318l3.17783,-7.20549" id="svg_8" fill="url(#svg_16)" stroke="#000000"/>
+	</svg>
+</g>
+
+<g id="text">
+	<svg id="svgzoom" viewBox="0 0 158 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <text x="58" y="120" id="svg_1" fill="#000000" stroke="#000000" stroke-width="0" font-size="120pt" font-family="sans-serif" text-anchor="middle" fill-opacity="1" stroke-opacity="1" font-weight="bold">A</text>
+	  <line x1="136" y1="7" x2="136" y2="121" id="svg_2" stroke="#000000" fill="none" fill-opacity="1" stroke-opacity="1" stroke-width="5"/>
+	  <line x1="120" y1="4" x2="152" y2="4" id="svg_3" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1"/>
+	 <line x1="120" y1="124" x2="152" y2="124" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1" id="svg_4"/>
+	</svg>
+</g>
+
+
+<g id="path">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 124" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0.28125" x1="0.33594" id="svg_4">
+   <stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
+   <stop stop-opacity="1" stop-color="#33a533" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path stroke-dasharray="null" stroke-width="4" stroke="#000000" fill="url(#svg_4)" id="svg_1" d="m6,103l55,-87c85,33.64 -26,37.12 55,87l-110,0z"/>
+ </svg>
+</g>
+
+<g id="image">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_25">
+   <stop stop-opacity="1" stop-color="#10284c" offset="0"/>
+   <stop stop-opacity="1" stop-color="#5374ad" offset="1"/>
+  </linearGradient>
+  <linearGradient y2="0.75781" x2="0.99609" y1="0" x1="1" id="svg_23">
+   <stop stop-opacity="1" stop-color="#162e84" offset="0"/>
+   <stop stop-opacity="1" stop-color="#97c4ef" offset="1"/>
+  </linearGradient>
+ </defs>
+  <rect x="1" y="3.83333" width="22" height="17" id="svg_18" fill="#202020" stroke="#ffffff" stroke-width="0"/>
+  <rect stroke-width="1.2" stroke="#ffffff" fill="#232947" id="svg_15" height="14" width="19" y="5.33333" x="2.5"/>
+  <rect fill="url(#svg_23)" id="svg_20" height="7.02244" width="15.96424" y="6.7266" x="4"/>
+  <rect fill="url(#svg_25)" id="svg_24" height="4.02393" width="15.96303" y="13.77454" x="4"/>
+  <circle fill="#ffffad" id="svg_26" r="1.83333" cy="9.82002" cx="7.13254"/>
+  <path d="m14.5696,13.77458l0.70243,-4.85313l-3.12899,4.85313l2.42656,0z" id="svg_14" fill="#404040" stroke="#000000" stroke-width="0"/>
+  <path d="m15.27203,8.98531c2.74584,0.06386 2.42657,4.21456 -0.63857,4.85313c0.70243,-1.27714 1.66028,-3.63985 0.63857,-4.85313z" id="svg_17" fill="#404040" stroke="#000000" stroke-width="0"/>
+</svg>
+</g>
+
+<g id="zoom">
+	<svg viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	 <defs>
+	  <linearGradient id="svg_30" x1="0" y1="0" x2="1" y2="0">
+	   <stop offset="0" stop-color="#d3d3d3" stop-opacity="1"/>
+	   <stop offset="1" stop-color="#424242" stop-opacity="1"/>
+	  </linearGradient>
+	 </defs>
+	  <path d="m107.14774,101.03477l-0.64774,43.96523c5.00857,4.72089 14.00811,5.27188 19,0l-0.31667,-44.16l-9.61514,-19.84l-8.42046,20.03477z" id="svg_29" fill="url(#svg_30)" stroke="#202020" stroke-width="2" transform="rotate(-45, 116, 114)"/>
+	  <circle cx="58" cy="58" r="51" id="svg_22" fill="#c0c0c0" stroke="#202020" stroke-width="5"/>
+	  <circle cx="58" cy="58" r="43" id="svg_27" fill="#aaccff" stroke="#202020" stroke-width="0"/>
+	  <path d="m15.68604,61.46511c38.13954,17.67442 48.13954,15.34883 85.11628,-0.46511c1.39536,18.60465 -19.30231,41.86047 -42.7907,40.93023c-21.6279,-0.93023 -42.7907,-21.86046 -42.32558,-40.46511z" id="svg_28" fill="#8cbaff" stroke="#202020" stroke-width="0"/>
+	</svg>
+</g>
+
+<g id="arrow_right">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 50">
+	  <path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
+	</svg>
+</g>
+
+<g id="arrow_down">
+	<svg viewBox="0 0 50 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <path transform="rotate(90, 26, 13)" d="m14,-12l0,50l25,-25l-25,-25z" fill="#000000" stroke="#000000"/>
+	</svg>
+</g>
+
+
+<g id="new_image">
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/>
+  <circle stroke-width="0" stroke="#a0a0a0" fill="#fff175" id="svg_65" r="3.83333" cy="6.24769" cx="19.16813"/>
+ </svg>
+</g>
+
+<g id="save">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	 <defs>
+	  <linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_41">
+	   <stop stop-opacity="1" stop-color="#727272" offset="0"/>
+	   <stop stop-opacity="1" stop-color="#d6d6d6" offset="1"/>
+	  </linearGradient>
+	  <linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46">
+	   <stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
+	   <stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
+	  </linearGradient>
+	 </defs>
+	   <path stroke="#202020" fill="#e0e0e0" id="svg_21" d="m1.51669,22.3458l21.13245,-0.10111l0,-6.06673l-2.62892,-9.80789l-16.27907,0.10111l-2.32558,9.20121l0.10111,6.67341z"/>
+	   <rect stroke="#efefef" fill="url(#svg_41)" id="svg_32" height="4.75108" width="19.21031" y="16.58227" x="2.42667"/>
+	   <path stroke="#ffffff" fill="#c0c0c0" id="svg_42" d="m4.55005,11.12235l0.70779,-2.83114l13.04348,0l0.70779,3.13448c-0.70779,2.52781 -4.04479,3.84227 -7.17897,3.84227c-2.72977,0 -6.37007,-1.41557 -7.28008,-4.1456z"/>
+	  <path stroke="#285582" fill="url(#svg_46)" id="svg_45" d="m7.14286,9.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
+	</svg>
+</g>
+
+<g id="open">
+<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient y2="0.91406" x2="0.65234" y1="0.14063" x1="0.42578" id="svg_76">
+   <stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
+   <stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
+  </linearGradient>
+ </defs>
+  <rect x="1.65" y="3.75" width="9.8" height="16.72712" id="svg_98" fill="#c0c0c0" stroke="#606060"/>
+  <rect stroke-width="0" stroke="#606060" fill="#a0a0a0" id="svg_88" height="14.17459" width="6.39585" y="4.9758" x="2.89542"/>
+  <path d="m18.62576,4.54365l0,6.91443l-9.9395,0l-0.08643,-10.11236l6.828,0l3.19792,3.19793z" id="svg_99" fill="#e0e0e0" stroke="#404040"/>
+  <path d="m2.95,20.53644l1.65,-12.03644l16.2,0l-1.5,12l-16.35,0.03643z" id="svg_97" fill="url(#svg_76)" stroke="#285582"/>
+  <line fill="none" stroke="#606060" id="svg_89" y2="4.28436" x2="13.95851" y1="4.28436" x1="10.32844"/>
+  <line fill="none" stroke="#606060" id="svg_91" y2="6.53155" x2="14.82282" y1="6.53155" x1="10.32844"/>
+  <path stroke-width="0" stroke="#606060" fill="#ffffff" id="svg_100" d="m15.25895,1.95069l-0.00401,2.85225l2.89558,0.00004l-2.89157,-2.85229z"/>
+</svg>
+</g>
+
+<g id="docprops">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	 <defs>
+	  <linearGradient y2="1" x2="1" y1="0.5" x1="1" id="svg_53">
+	   <stop stop-opacity="1" stop-color="#606060" offset="0"/>
+	   <stop stop-opacity="0" stop-color="#5e5e5e" offset="1"/>
+	  </linearGradient>
+	 </defs>
+	  <rect stroke="#606060" fill="#eaeaea" id="svg_55" height="21" width="18" y="1.6692" x="2.42792"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_56" y2="4.37757" x2="14.89023" y1="4.37757" x1="6.696"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_57" y2="7.10804" x2="12.92026" y1="7.10804" x1="6.6948"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_58" y2="9.84241" x2="15.64716" y1="9.84241" x1="6.6942"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_59" y2="12.36585" x2="13.21805" y1="12.36585" x1="6.69691"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_60" y2="15.06507" x2="14.43591" y1="15.06507" x1="6.69691"/>
+	  <line fill="none" stroke="#a0a0a0" id="svg_61" y2="17.84241" x2="13.36979" y1="17.84241" x1="6.69691"/>
+	  <g id="svg_54">
+	   <path transform="rotate(-45, 12.5448, 11.7085)" stroke-width="0" stroke="#000000" fill="#606060" id="svg_31" d="m11.24329,8.73944l0,2.79974l2.53499,0.07777l0,-2.95528c1.78134,0.07777 2.26093,1.39987 2.12391,2.95528c-0.06851,1.63318 -1.30175,3.49967 -3.49418,3.26636c-2.19242,-0.31108 -2.87755,-1.39987 -3.15161,-2.72197c-0.27406,-1.39987 0.41108,-3.34413 1.98689,-3.4219z"/>
+	   <rect opacity="0.95" transform="rotate(-45, 16.2485, 15.1732)" stroke-width="0" stroke="#000000" fill="url(#svg_53)" id="svg_50" height="4.85445" width="2.57974" y="12.746" x="15.04047"/>
+	  </g>
+	</svg>
+</g>
+
+<g id="source">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55 52">
+  <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_40" y="15" x="28.23" font-weight="bold">s</text>
+  <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_47" y="30" x="28.23" font-weight="bold">v</text>
+  <text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_48" y="44" x="28.23" font-weight="bold">g</text>
+  <line stroke-width="3" fill="none" stroke="#aa0000" id="svg_51" y2="43" x2="16" y1="25" x1="5"/>
+  <line id="svg_62" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="16" y1="26" x1="5"/>
+  <line id="svg_63" stroke-width="3" fill="none" stroke="#aa0000" y2="43" x2="39" y1="25" x1="50"/>
+  <line id="svg_64" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="39" y1="26" x1="51"/>
+ </svg>
+</g>
+ 
+<g id="wireframe">
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <circle stroke="#000000" fill="none" id="svg_49" r="8" cy="9.5" cx="9.5"/>
+  <rect stroke="#000000" fill="none" id="svg_52" height="14" width="14" y="8.5" x="8.5"/>
+ </svg>
+</g>
+
+<g id="undo">
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="svg_66" x1="0.04297" y1="0.00391" x2="0.21484" y2="0.875">
+   <stop offset="0" stop-color="#f7f963" stop-opacity="1"/>
+   <stop offset="1" stop-color="#d3c310" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <path transform="rotate(-90, 10.3017, 11.5526)" d="m6.70188,10.72562l6.55493,-7.13388l6.65817,7.24912l-3.79441,0.03193l0,2.72259c-0.04257,2.74017 -2.76516,5.83068 -7.81235,6.02135c-5.18575,0 -7.1226,-3.75464 -7.49302,-7.41944c0.61736,1.6754 3.14913,3.78397 5.3716,3.67918c2.71635,0.1048 4.41501,-0.61714 4.41501,-2.50184l0,-2.64901l-3.89995,0z" id="svg_45" fill="url(#svg_66)" stroke="#b7a800"/>
+ </svg>
+</g>
+
+<g id="redo">
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_71">
+   <stop stop-opacity="1" stop-color="#98fc46" offset="0"/>
+   <stop stop-opacity="1" stop-color="#56aa25" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path transform="rotate(-90, 12.7299, 11.5526)" d="m9.11294,12.43144l6.54089,6.84566l6.6439,-6.95624l-3.78628,-0.03064l0,-2.61259c-0.04248,-2.62946 -2.75924,-5.5951 -7.79561,-5.77807c-5.17464,0 -7.10734,3.60294 -7.47697,7.11967c0.61604,-1.60771 3.14238,-3.63109 5.36009,-3.53053c2.71053,-0.10056 4.40555,0.59221 4.40555,2.40076l0,2.54198l-3.89159,0z" id="svg_45" fill="url(#svg_71)" stroke="#44aa00"/>
+ </svg>
+</g>
+
+<g id="clone">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_36">
+   <stop stop-opacity="1" stop-color="#f9f3de" offset="0"/>
+   <stop stop-opacity="1" stop-color="#ccbd8f" offset="1"/>
+  </linearGradient>
+  <linearGradient y2="0.80078" x2="0.42578" y1="0" x1="0" id="svg_69">
+   <stop stop-opacity="1" stop-color="#f9f3de" offset="0"/>
+   <stop stop-opacity="1" stop-color="#af995b" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path stroke="#8f5902" fill="url(#svg_69)" id="svg_34" d="m2.11676,16.32061l-0.13787,-5.05515l1.93015,-2.02206l10.11029,0l2.02206,2.29779l0,4.77941l-13.92463,0z"/>
+  <rect x="7.85379" y="6.30027" width="2.2932" height="4.3407" id="svg_38" fill="url(#svg_36)" stroke="#8f5902" rx="1" ry="1"/>
+  <circle stroke="#8f5902" fill="url(#svg_36)" id="svg_35" r="2.96392" cy="4.48149" cx="9.11757"/>
+  <line x1="2.44838" y1="12.03512" x2="15.5524" y2="12.03512" id="svg_39" stroke="#f9f3de" fill="none"/>
+  <path d="m6.72427,12.55859l4.74203,0l-2.30831,2.07258l-2.43372,-2.07258z" id="svg_43" fill="#000000" stroke="#8f5902" fill-opacity="0.76" stroke-width="0"/>
+</svg>
+</g>
+
+<g id="delete">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <rect ry="3" rx="3" stroke="#800000" fill="#aa0000" id="svg_37" height="20.29514" width="21.17486" y="1.70304" x="1.42011"/>
+  <rect ry="3" rx="3" stroke="#ff5555" fill="#aa0000" id="svg_67" height="18.63022" width="19.61118" y="2.53597" x="2.20258"/>
+  <line stroke-width="2" fill="none" stroke="#ffffff" id="svg_68" y2="16.85127" x2="17.00646" y1="6.85127" x1="7.00646"/>
+  <line stroke-width="2" id="svg_70" fill="none" stroke="#ffffff" y2="16.85127" x2="7.00646" y1="6.85127" x1="17.00646"/>
+ </svg>
+</g>
+
+<g id="go_up">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
+	 <defs>
+	  <linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_74">
+	   <stop stop-opacity="1" stop-color="#afe853" offset="0"/>
+	   <stop stop-opacity="1" stop-color="#52a310" offset="1"/>
+	  </linearGradient>
+	 </defs>
+	  <path stroke="#008000" fill="url(#svg_74)" id="svg_33" d="m5.38492,16.77043l7.07692,0l0,-5.23077l4.15385,0l-7.69231,-10.15385l-7.69231,10.15385l4.15385,0l0,5.23077z"/>
+	</svg>
+</g>
+
+<g id="go_down">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
+ <defs>
+  <linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_75">
+   <stop stop-opacity="1" stop-color="#afe853" offset="0"/>
+   <stop stop-opacity="1" stop-color="#52a310" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path stroke="#008000" fill="url(#svg_75)" id="svg_33" d="m5.3015,1.69202l6.93483,0l0,5.07323l4.07045,0l-7.53786,9.84803l-7.53786,-9.84803l4.07045,0l0,-5.07323z"/>
+ </svg>
+</g>
+
+<g id="move_bottom">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 23">
+ <defs>
+  <linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_80">
+   <stop stop-opacity="1" stop-color="#bc7f05" offset="0"/>
+   <stop stop-opacity="1" stop-color="#fcfc9f" offset="1"/>
+  </linearGradient>
+ </defs>
+  <line stroke-width="2" fill="none" stroke="#000000" id="svg_72" y2="2.5" x2="22" y1="2.5" x1="10.5"/>
+  <line id="svg_73" stroke-width="2" fill="none" stroke="#000000" y2="6.5" x2="21.99844" y1="6.5" x1="10.49844"/>
+  <line id="svg_74" stroke-width="2" fill="none" stroke="#000000" y2="10.5" x2="21.99922" y1="10.5" x1="10.49922"/>
+  <line id="svg_75" stroke-width="2" fill="none" stroke="#000000" y2="14.5" x2="21.99922" y1="14.5" x1="10.49922"/>
+  <rect stroke="#000000" fill="url(#svg_80)" id="svg_77" height="2.2" width="20" y="17.65" x="1.65"/>
+  <path stroke-width="0" stroke="#000000" fill="#000000" id="svg_81" d="m4.25,1.55l2.35,0l0,11.05l2,0l-3.175,3.45l-3.175,-3.45l2,0l0,-11.05z"/>
+ </svg>
+</g>
+
+<g id="move_top">
+<svg viewBox="0 0 23 23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="svg_86" x1="0" y1="0" x2="1" y2="0">
+   <stop offset="0" stop-color="#9fdcf4" stop-opacity="1"/>
+   <stop offset="1" stop-color="#617e96" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <line x1="1.3" y1="8.19922" x2="12.8" y2="8.19922" id="svg_72" stroke="#000000" fill="none" stroke-width="2"/>
+  <line x1="1.29844" y1="12.19922" x2="12.79844" y2="12.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_73"/>
+  <line x1="1.29922" y1="16.19922" x2="12.79922" y2="16.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_74"/>
+  <line x1="1.29922" y1="20.19922" x2="12.79922" y2="20.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_75"/>
+  <rect x="1.55" y="1.85" width="20" height="3.2" id="svg_77" fill="url(#svg_86)" stroke="#000000"/>
+  <path d="m16.83475,21.14603l2.33207,0l0,-11.04578l1.98474,0l-3.15077,-3.44869l-3.15077,3.44869l1.98474,0l0,11.04578z" id="svg_81" fill="#000000" stroke="#000000" stroke-width="0"/>
+ </svg>
+</g>
+
+<g id="to_path">
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient y2="0.46875" x2="0.42969" y1="0.10156" x1="0.10547" id="svg_105">
+   <stop stop-color="#ff0000" offset="0"/>
+   <stop stop-opacity="0" stop-color="#ff0000" offset="1"/>
+  </linearGradient>
+ </defs>
+ <g>
+  <circle cx="21" cy="21.3125" r="18.44531" id="svg_120" fill="url(#svg_105)" stroke="#000000"/>
+  <path fill="none" stroke="#000000" d="m2.875,21.3125c-0.375,-9.25 7.75,-18.875 17.75,-18" id="svg_115"/>
+  <line x1="25.375" y1="3.0625" x2="8.5" y2="3.0625" id="svg_116" stroke="#808080" fill="none"/>
+  <line x1="2.625" y1="24.75" x2="2.625" y2="9.8125" id="svg_117" stroke="#808080" fill="none"/>
+  <circle cx="8.5" cy="2.9375" r="1.95313" fill="#00ffff" stroke="#0000ff" stroke-width="0.5" id="svg_118"/>
+  <circle cx="2.625" cy="9.8125" r="1.95313" fill="#00ffff" stroke="#0000ff" stroke-width="0.5" id="svg_119"/>
+  <circle cx="20.875" cy="3.1875" r="2.5" id="svg_112" fill="#00ffff" stroke="#0000ff"/>
+  <circle cx="2.875" cy="21.0625" r="2.5" fill="#00ffff" stroke="#0000ff" id="svg_114"/>
+ </g>
+</svg>
+</g>
+
+<g id="link_controls">
+<svg viewBox="0 0 24 24" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
+  <path stroke-width="2" id="svg_102" d="m9.875,23c-2,-4.25 -1.6875,-7.375 1.6875,-10.5c3.375,-3.125 7.5625,-2.75 11.0625,2" stroke="#8dd35f" fill="none"/>
+  <line fill="none" stroke="#606060" id="svg_109" y2="4" x2="19" y1="19" x1="4"/>
+  <circle stroke="#0000ff" fill="#00ffff" id="svg_111" r="2.17578" cy="11.5" cx="11.5"/>
+  <circle stroke-width="0.5" id="svg_121" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="4" cx="19"/>
+  <circle id="svg_123" stroke-width="0.5" stroke="#0000ff" fill="#00ffff" r="2.26172" cy="19" cx="4"/>
+</svg>
+</g>
+
+<g id="reorient">
+<svg viewBox="0 0 24 24" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+  <linearGradient y2="1" x2="1" y1="1" x1="0" id="svg_113">
+   <stop stop-opacity="0" stop-color="#0000ff" offset="0"/>
+   <stop stop-opacity="1" stop-color="#507ece" offset="1"/>
+  </linearGradient>
+ </defs>
+  <rect stroke-dasharray="2,2" stroke="#0000ff" fill="none" id="svg_108" height="19.125" width="18.625" y="2.625" x="2.875"/>
+  <rect transform="rotate(45, 12.2344, 12.1719)" stroke="#000000" fill="url(#svg_113)" id="svg_107" height="6.125" width="16" y="9.10848" x="4.23267"/>
+</svg>
+</g>
+
+<g id="group">
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
+   <stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
+   <stop offset="1" stop-color="#789fed" stop-opacity="1"/>
+  </linearGradient>
+  <linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
+   <stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
+   <stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <rect x="13.5" y="0.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
+  <rect x="13.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_82"/>
+  <rect x="0.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
+  <rect x="2.5" y="2.5" width="8" height="7" fill="#a0a0a0" stroke="#555555" id="svg_85"/>
+  <rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
+  <rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
+  <rect x="0.5" y="0.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
+ </svg>
+</g>
+
+<g id="ungroup">
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
+   <stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
+   <stop offset="1" stop-color="#789fed" stop-opacity="1"/>
+  </linearGradient>
+  <linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
+   <stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
+   <stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
+  </linearGradient>
+ </defs>
+  <rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
+  <rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
+  <rect x="9.5" y="1.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
+  <rect x="1.5" y="8.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
+  <rect x="1.5" y="1.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
+  <rect id="svg_93" x="12.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
+  <rect id="svg_94" x="12.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
+  <rect id="svg_95" x="4.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
+  <rect id="svg_96" x="4.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
+</svg>
+</g>
+
+<g id="align_left">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+	  <rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="2.5"/>
+	  <rect stroke-width="0" stroke="#606060" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="2"/>
+	  <rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="2.5"/>
+	  <rect id="svg_7" stroke-width="0" stroke="#606060" fill="#c0c0c0" height="4" width="17" y="14" x="2"/>
+	  <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="1.5"/>
+	</svg>
+</g>
+
+<g id="align_center">
+	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <rect x="1.5" y="12.5" width="18" height="7" fill="#c0c0c0" stroke="#606060" id="svg_6"/>
+	  <rect x="4.5" y="2.5" width="12" height="7" id="svg_4" fill="#c0c0c0" stroke="#606060"/>
+	  <rect x="9.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
+	  <rect x="2.5" y="13.5" width="16" height="5" fill="none" stroke="#ffffff" id="svg_7"/>
+	  <rect x="5.5" y="3.5" width="10" height="5" id="svg_5" fill="none" stroke="#ffffff"/>
+	</svg>
+</g>
+
+<g id="align_right">
+	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <rect x="7.5" y="2.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
+	  <rect x="9" y="4" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="#606060" stroke-width="0"/>
+	  <rect x="1.5" y="12.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
+	  <rect x="3" y="14" width="17" height="4" fill="#c0c0c0" stroke="#606060" stroke-width="0" id="svg_7"/>
+	  <rect x="18.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
+	</svg>
+</g>
+
+<g id="align_top">
+	<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+	  <g transform="rotate(90, 11, 11)" id="svg_1">
+	   <rect x="2.5" y="3.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
+	   <rect x="2" y="5" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="#606060" stroke-width="0"/>
+	   <rect x="2.5" y="13.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
+	   <rect x="2" y="15" width="17" height="4" fill="#c0c0c0" stroke="#606060" stroke-width="0" id="svg_7"/>
+	   <rect x="1.5" y="-9" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
+	  </g>
+	</svg>
+</g>
+
+<g id="align_middle">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <g transform="rotate(90, 12, 11.5)" id="svg_1">
+   <rect id="svg_6" stroke="#606060" fill="#c0c0c0" height="7" width="18" y="14" x="3"/>
+   <rect stroke="#606060" fill="#c0c0c0" id="svg_4" height="7" width="12" y="4" x="6"/>
+   <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-8.5" x="11"/>
+   <rect id="svg_7" stroke="#ffffff" fill="none" height="5" width="16" y="15" x="4"/>
+   <rect stroke="#ffffff" fill="none" id="svg_5" height="5" width="10" y="5" x="7"/>
+   </g>
+</svg>
+</g>
+
+<g id="align_bottom">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <g transform="rotate(90, 11, 11)" id="svg_1">
+   <rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="7.5"/>
+   <rect stroke-width="0" stroke="#606060" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="9"/>
+   <rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="1.5"/>
+   <rect id="svg_7" stroke-width="0" stroke="#606060" fill="#c0c0c0" height="4" width="17" y="14" x="3"/>
+   <rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="18.5"/>
+   </g>
+</svg>
+</g>
+
+<g id="eye">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17">
+ <defs>
+  <linearGradient y2="0.79688" x2="0.5625" y1="0.19141" x1="0.42969" id="svg_91">
+   <stop stop-opacity="1" stop-color="#d3a16b" offset="0"/>
+   <stop stop-opacity="1" stop-color="#a37c53" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path stroke-width="0" stroke="#000000" fill="url(#svg_91)" id="svg_9" d="m0.12852,8.18338c3.59931,-7.71208 13.19749,-7.36932 16.75236,0.08569c-3.02165,7.5407 -13.59741,7.66924 -16.75236,-0.08569z"/>
+  <path id="svg_76" stroke-width="0" stroke="#000000" fill="#ffffff" d="m0.33033,8.2557c3.5173,-4.97159 12.89675,-4.75063 16.37062,0.05524c-2.95279,4.86111 -13.28756,4.94397 -16.37062,-0.05524z"/>
+  <circle stroke-width="0" stroke="#000000" fill="#4f92c1" id="svg_88" r="3.08008" cy="7.71116" cx="8.45861"/>
+  <circle stroke-width="0" stroke="#000000" fill="#000000" id="svg_89" r="1.27539" cy="7.6539" cx="8.43159"/>
+ </svg>
+</g>
+
+<g id="no_color">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	  <line fill="none" stroke="#d40000" id="svg_90" y2="24" x2="24" y1="0" x1="0"/>
+	  <line id="svg_92" fill="none" stroke="#d40000" y2="24" x2="0" y1="0" x1="24"/>
+	</svg>
+</g>
+
+<g id="ok">
+	<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+	 <defs>
+	  <linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_106">
+	   <stop stop-opacity="1" stop-color="#38ff45" offset="0"/>
+	   <stop stop-opacity="1" stop-color="#127c0c" offset="1"/>
+	  </linearGradient>
+	 </defs>
+	  <path transform="rotate(45, 12, 10)" stroke="#005500" fill="url(#svg_106)" id="svg_101" d="m7.9,15.9l4.9,-0.05l0,-13.75l3.8,0l0,17.6l-8.7,0l0,-3.8z"/>
+	</svg>
+</g>
+
+<g id="cancel">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs>
+  <linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_9">
+   <stop stop-opacity="1" stop-color="#ff3838" offset="0"/>
+   <stop stop-opacity="1" stop-color="#7a0c0c" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path stroke="#550000" fill="url(#svg_9)" id="svg_101" d="m2.10526,10.52632l7.36842,0l0,-7.36842l3.68421,0l0,7.36842l7.36842,0l0,3.68421l-7.36842,0l0,7.36842l-3.68421,0l0,-7.36842l-7.36842,0l0,-3.68421z" transform="rotate(45, 11.3, 12.3)"/>
+ </svg>
+</g>
+
+<g id="warning">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs>
+  <linearGradient y2="0.98047" x2="0.57813" y1="0.44922" x1="0.56641" id="svg_110">
+   <stop stop-opacity="1" stop-color="#ffff00" offset="0"/>
+   <stop stop-opacity="1" stop-color="#9e9e00" offset="1"/>
+  </linearGradient>
+ </defs>
+  <path d="m1.42857,21.55559l10.71429,-19.36489l10.71429,19.20352l-21.42857,0.16137z" id="svg_44" fill="url(#svg_110)" stroke="#916d1f" stroke-width="2"/>
+  <path stroke-width="0" stroke="#916d1f" fill="#000000" id="svg_103" d="m11.98371,14.68571c-0.57143,-3.82857 -1.82857,-6.4 0.11429,-6.4c2.11429,0 0.74286,2.57143 0.11429,6.4l-0.22857,0z"/>
+  <circle stroke-width="0" stroke="#916d1f" fill="#000000" id="svg_104" r="1.17578" cy="17.37143" cx="12.14308"/>
+ </svg>
+</g>
+
+<g id="svg_eof"/>
+
+</svg>
\ No newline at end of file
Binary file htdocs/svg-edit/editor/images/svg_edit_icons.svgz has changed
Binary file htdocs/svg-edit/editor/images/text.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/images/text.svg	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="22.000000px"
+   height="22.000000px"
+   id="svg1306"
+   sodipodi:version="0.32"
+   inkscape:version="0.42.2"
+   sodipodi:docbase="/home/andreas/projekt/bild/tango/22"
+   sodipodi:docname="draw-text2.svg">
+  <defs
+     id="defs1308">
+    <linearGradient
+       id="linearGradient3682">
+      <stop
+         style="stop-color:#1f1f1f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3684" />
+      <stop
+         style="stop-color:#5c5c5c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3686" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3558">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3560" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3562" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3558"
+       id="radialGradient3564"
+       cx="22.571428"
+       cy="30.857143"
+       fx="22.571428"
+       fy="30.857143"
+       r="15.571428"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.651376,4.300378e-15,10.75754)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2834">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2836" />
+      <stop
+         style="stop-color:#b3b3b3;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2838" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2834"
+       id="linearGradient2840"
+       x1="19.944447"
+       y1="16.527262"
+       x2="24.133829"
+       y2="19.642126"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.498259,0.000000,0.000000,0.466519,-0.799974,-0.839637)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3682"
+       id="linearGradient3688"
+       x1="23.305620"
+       y1="24.843527"
+       x2="14.388516"
+       y2="9.5902243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.498259,0.000000,0.000000,0.488600,-0.799974,-1.273557)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="14.000000"
+     inkscape:cx="17.541947"
+     inkscape:cy="12.572768"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1280"
+     inkscape:window-height="885"
+     inkscape:window-x="0"
+     inkscape:window-y="25" />
+  <metadata
+     id="metadata1311">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.47368422;color:#000000;fill:url(#radialGradient3564);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path3556"
+       sodipodi:cx="22.571428"
+       sodipodi:cy="30.857143"
+       sodipodi:rx="15.571428"
+       sodipodi:ry="10.142858"
+       d="M 38.142857 30.857143 A 15.571428 10.142858 0 1 1  7.0000000,30.857143 A 15.571428 10.142858 0 1 1  38.142857 30.857143 z"
+       transform="matrix(0.706422,0.000000,0.000000,0.208015,-4.944952,13.47138)" />
+    <path
+       style="font-size:54.869392px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient3688);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.0000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 15.189363,15.520771 L 7.1531447,15.520771 L 5.8598048,19.513834 L 0.51627279,19.513834 L 8.1009381,0.48837876 L 14.228221,0.48837876 L 21.560524,19.464779 L 16.444188,19.464779 L 15.189363,15.520771 M 8.3990779,12.473977 L 13.858901,12.473977 L 11.171254,5.1526958 L 8.3990779,12.473977"
+       id="text1314"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <path
+       style="font-size:54.869392px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.37912086;fill:none;fill-opacity:1.0000000;stroke:url(#linearGradient2840);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 15.684541,15.159554 L 6.6710758,15.159554 L 5.4166733,18.527305 L 2.0035414,18.527305 L 8.7384662,1.4621947 L 13.512484,1.4621947 L 20.022564,18.410463 L 16.899702,18.410463 L 15.684541,15.159554 z "
+       id="path2047"
+       sodipodi:nodetypes="ccccccccc" />
+    <image
+       id="image2089"
+       height="459.00000"
+       width="400.00000"
+       sodipodi:absref="/home/andreas/palette2.png"
+       xlink:href="/home/andreas/palette2.png"
+       x="-354.93631"
+       y="-214.53793" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#999999;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;opacity:0.51098901"
+       d="M 8.1686844,13.551882 L 14.147791,13.551882"
+       id="path5142"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
Binary file htdocs/svg-edit/editor/images/to_path.png has changed
Binary file htdocs/svg-edit/editor/images/undo.png has changed
Binary file htdocs/svg-edit/editor/images/view-refresh.png has changed
Binary file htdocs/svg-edit/editor/images/wave.png has changed
Binary file htdocs/svg-edit/editor/images/wireframe.png has changed
Binary file htdocs/svg-edit/editor/images/zoom.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jgraduate/LICENSE	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jgraduate/README	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,3 @@
+jGraduate - A jQuery plugin for picking gradients
+
+Licensed under the Apache License 2.  See LICENSE for more information.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jgraduate/css/jGraduate-0.2.0.css	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,176 @@
+/* 
+ * jGraduate Default CSS
+ * 
+ * Copyright (c) 2009 Jeff Schiller
+ *
+ * Licensed under the Apache License Version 2
+ */
+
+h2.jGraduate_Title {
+  font-family: Arial, Helvetica, Sans-Serif;
+  font-size: 11px !important;
+  font-weight: bold;
+  margin: -13px 0px 0px 0px;
+  padding: 0px;
+  text-align: center;
+}
+
+.jGraduate_Picker {
+	font-family: Arial, Helvetica, Sans-Serif;
+	font-size: 12px;
+	border-style: solid;
+	border-color: lightgrey black black lightgrey;
+	border-width: 1px;
+	background-color: #EFEFEF;
+	position: absolute;
+	padding: 10px;
+}
+
+li.jGraduate_tab_color, li.jGraduate_tab_lingrad {
+	background-color: #ccc;
+	display: inline;
+	border: solid 1px grey;
+	padding: 3px;
+	margin: 2px;
+	cursor: pointer;
+}
+
+li.jGraduate_tab_current {
+	background-color: #EFEFEF;
+	display: inline;
+	padding: 3px;
+	margin: 2px;
+	border: solid 1px black;
+	cursor: pointer;
+}
+
+.jGraduate_colPick {
+	display: none;
+}
+
+.jGraduate_lgPick {	
+	display: none;
+	border: outset 1px #666;
+	padding: 10px 7px 5px 5px;
+	overflow: auto;
+}
+
+.jGraduate_tabs {
+	position: relative;
+	background-color: #EFEFEF;
+	padding: 0px;
+	margin: 0px;
+	margin-bottom: 5px;
+}
+
+div.jGraduate_Swatch {
+	float: left;
+	margin: 8px;
+}
+div.jGraduate_GradContainer {
+	border: 2px inset #EEE;
+	background-image: url(../images/map-opacity.png); 
+	background-position: 0px 0px;
+	height: 256px;
+}
+
+.jGraduate_AlphaArrows {
+	position: absolute;
+	margin-top: -10px;
+	margin-left: 250.5px;
+}
+
+div.jGraduate_Opacity {
+	border: 2px inset #eee;
+	margin-top: 14px;
+	background-color: black;
+	background-image: url(../images/Maps.png);
+	background-position: 0px -2816px;
+	height: 20px;
+	cursor: ew-resize;
+}
+
+div.jGraduate_OpacityField {
+	position: absolute;
+	bottom: 25px;
+	left: 292px;
+}
+
+div.jGraduate_Form {
+	float: left;
+	width: 140px;
+	margin: -3px 3px 0px 4px;
+}
+
+div.jGraduate_StopSection {
+	width: 120px;
+	text-align: center;
+}
+
+div.jGraduate_OkCancel {
+	float: left;
+	width: 113px;
+}
+
+input.jGraduate_Ok, input.jGraduate_Cancel {
+	display: block;
+	width: 100px;
+	margin-left: -4px;
+	margin-right: -4px;
+}
+input.jGraduate_Ok {
+	margin: 9px -4px 5px -4px;
+}
+
+.colorBox {
+	float: left;
+	height: 16px;
+	width: 16px;
+	border: 1px solid #808080;
+	cursor: pointer;
+	margin: 4px 4px 4px 30px;
+}
+
+.colorBox + label {
+	float: left;
+	margin-top: 7px;
+}
+
+label.jGraduate_Form_Heading {
+	position: relative;
+	top: 10px;
+	background-color: #EFEFEF;
+	padding: 2px;
+	font-weight: bold;
+	font-size: 13px;
+}
+
+div.jGraduate_Form_Section {
+	border-style: solid;
+	border-width: 1px;
+	border-color: grey;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	padding: 15px 5px 5px 5px;
+	margin: 2px;
+	width: 110px;
+	text-align: center;
+	overflow: auto;
+}
+
+div.jGraduate_LightBox {
+	position: fixed;
+	top: 0px;
+	left: 0px;
+	right: 0px;
+	bottom: 0px;
+	background-color: #000;
+	opacity: 0.5;
+	display: none;
+}
+
+div.jGraduate_stopPicker {
+	position: absolute;
+	display: none;
+	background: #E8E8E8;
+}
\ No newline at end of file
Binary file htdocs/svg-edit/editor/jgraduate/images/Bars.png has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/Maps.png has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/bar-opacity.png has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/map-opacity.png has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/mappoint.gif has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/picker.gif has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/preview-opacity.png has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/rangearrows.gif has changed
Binary file htdocs/svg-edit/editor/jgraduate/images/rangearrows2.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,571 @@
+/*
+ * jGraduate 0.3.x
+ *
+ * jQuery Plugin for a gradient picker
+ *
+ * Copyright (c) 2009 Jeff Schiller
+ * http://blog.codedread.com/
+ *
+ * Apache 2 License
+
+jGraduate( options, okCallback, cancelCallback )
+
+where options is an object literal:
+	{
+		window: { title: "Pick the start color and opacity for the gradient" },
+		images: { clientPath: "images/" },
+		paint: a Paint object
+	}
+ 
+- the Paint object is:
+	Paint {
+		type: String, // one of "none", "solidColor", "linearGradient", "radialGradient"
+		alpha: Number representing opacity (0-100),
+		solidColor: String representing #RRGGBB hex of color,
+		linearGradient: object of interface SVGLinearGradientElement,
+	}
+
+$.jGraduate.Paint() -> constructs a 'none' color
+$.jGraduate.Paint({copy: o}) -> creates a copy of the paint o
+$.jGraduate.Paint({hex: "#rrggbb"}) -> creates a solid color paint with hex = "#rrggbb"
+$.jGraduate.Paint({linearGradient: o, a: 50}) -> creates a linear gradient paint with opacity=0.5
+$.jGraduate.Paint({hex: "#rrggbb", linearGradient: o}) -> throws an exception?
+
+- picker accepts the following object as input:
+	{
+		okCallback: function to call when Ok is pressed
+		cancelCallback: function to call when Cancel is pressed
+		paint: object describing the paint to display initially, if not set, then default to opaque white
+	}
+
+- okCallback receives a Paint object
+
+ *
+ */
+var ns = { svg: 'http://www.w3.org/2000/svg', xlink: 'http://www.w3.org/1999/xlink' };
+if(!window.console) {
+  window.console = new function() {
+    this.log = function(str) {};
+    this.dir = function(str) {};
+  };
+}
+$.cloneNode = function(el) {
+	if(!window.opera) return el.cloneNode(true);
+	// manually create a copy of the element
+	opera.postError(ns.svg, el.nodeName);
+	var new_el = document.createElementNS(ns.svg, el.nodeName);
+	$.each(el.attributes, function(i, attr) {
+		new_el.setAttributeNS(ns.svg, attr.nodeName, attr.nodeValue);
+	});
+	$.each(el.childNodes, function(i, child) {
+		if(child.nodeType == 1) {
+			new_el.appendChild($.cloneNode(child));
+		}
+	});
+	return new_el;
+}
+
+$.jGraduate = { 
+	Paint:
+		function(opt) {
+			var options = opt || {};
+			this.alpha = options.alpha || 100;
+			// copy paint object
+    		if (options.copy) {
+    			this.type = options.copy.type;
+    			this.alpha = options.copy.alpha;
+    			switch(this.type) {
+    				case "none":
+    					this.solidColor = null;
+    					this.linearGradient = null;
+    					break;
+    				case "solidColor":
+    					this.solidColor = options.copy.solidColor;
+    					this.linearGradient = null;
+    					break;
+    				case "linearGradient":
+    					this.solidColor = null;
+    					this.linearGradient = $.cloneNode(options.copy.linearGradient);
+    					break;
+    			}
+    		}
+    		// create linear gradient paint
+    		else if (options.linearGradient) {
+    			this.type = "linearGradient";
+    			this.solidColor = null;
+    			this.linearGradient = $.cloneNode(options.linearGradient);
+    		}
+    		// create solid color paint
+    		else if (options.solidColor) {
+    			this.type = "solidColor";
+    			this.solidColor = options.solidColor;
+    		}
+    		// create empty paint
+	    	else {
+	    		this.type = "none";
+    			this.solidColor = null;
+    			this.linearGradient = null;
+	    	}
+		}
+};
+
+jQuery.fn.jGraduateDefaults = {
+	paint: new $.jGraduate.Paint(),
+	window: {
+		pickerTitle: "Drag markers to pick a paint",
+	},
+	images: {
+		clientPath: "images/",
+	},
+};
+
+jQuery.fn.jGraduate =
+	function(options) {
+	 	var $arguments = arguments;
+		return this.each( function() {
+			var $this = $(this), $settings = $.extend(true, {}, jQuery.fn.jGraduateDefaults, options),
+				id = $this.attr('id'),
+				idref = '#'+$this.attr('id')+' ';
+			
+            if (!idref)
+            {
+              alert('Container element must have an id attribute to maintain unique id strings for sub-elements.');
+              return;
+            }
+            
+            var okClicked = function() {
+            	$.isFunction($this.okCallback) && $this.okCallback($this.paint);
+            	$this.hide();
+            },
+            cancelClicked = function() {
+            	$.isFunction($this.cancelCallback) && $this.cancelCallback();
+            	$this.hide();
+            };
+
+            $.extend(true, $this, // public properties, methods, and callbacks
+              {
+              	// make a copy of the incoming paint
+                paint: new $.jGraduate.Paint({copy: $settings.paint}),
+                okCallback: $.isFunction($arguments[1]) && $arguments[1] || null,
+                cancelCallback: $.isFunction($arguments[2]) && $arguments[2] || null,
+              });
+
+			var pos = $this.position(),
+				color = null;
+
+			if ($this.paint.type == "none") {
+				$this.paint = $.jGraduate.Paint({solidColor: 'ffffff'});
+			}
+
+            $this.addClass('jGraduate_Picker');
+            $this.html('<ul class="jGraduate_tabs">' +
+            				'<li class="jGraduate_tab_color jGraduate_tab_current">Solid Color</li>' +
+            				'<li class="jGraduate_tab_lingrad">Linear Gradient</li>' +
+            			'</ul>' +
+            			'<div class="jGraduate_colPick"></div>' +
+            			'<div class="jGraduate_lgPick"></div>');
+			var colPicker = $(idref + '> .jGraduate_colPick');
+			var lgPicker = $(idref + '> .jGraduate_lgPick');
+			
+            lgPicker.html(
+            	'<div id="' + id + '_jGraduate_Swatch" class="jGraduate_Swatch">' +
+            		'<h2 class="jGraduate_Title">' + $settings.window.pickerTitle + '</h2>' +
+            		'<div id="' + id + '_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' +
+            		'<div id="' + id + '_jGraduate_Opacity" class="jGraduate_Opacity" title="Click to set overall opacity of the gradient paint">' +
+            			'<img id="' + id + '_jGraduate_AlphaArrows" class="jGraduate_AlphaArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif"></img>' +
+            		'</div>' +
+            	'</div>' + 
+            	'<div class="jGraduate_Form">' +
+            		'<div class="jGraduate_StopSection">' +
+	            		'<label class="jGraduate_Form_Heading">Begin Stop</label>' +
+    	        		'<div class="jGraduate_Form_Section">' +
+        	    			'<label>x:</label>' +
+            				'<input type="text" id="' + id + '_jGraduate_x1" size="3" title="Enter starting x value between 0.0 and 1.0"/>' +
+            				'<label> y:</label>' +
+            				'<input type="text" id="' + id + '_jGraduate_y1" size="3" title="Enter starting y value between 0.0 and 1.0"/>' +
+	        	    		'<div id="' + id + '_jGraduate_colorBoxBegin" class="colorBox"></div>' +
+		            		'<label id="' + id + '_jGraduate_beginOpacity"> 100%</label>' +
+        	   			'</div>' +
+        	   		'</div>' +
+        	   		'<div class="jGraduate_StopSection">' +
+	            		'<label class="jGraduate_Form_Heading">End Stop</label>' +
+    	        		'<div class="jGraduate_Form_Section">' +
+	    	        		'<label>x:</label>' +
+		    	        	'<input type="text" id="' + id + '_jGraduate_x2" size="3" title="Enter ending x value between 0.0 and 1.0"/>' +
+    		    	    	'<label> y:</label>' +
+        		    		'<input type="text" id="' + id + '_jGraduate_y2" size="3" title="Enter ending y value between 0.0 and 1.0"/>' +
+        	    			'<div id="' + id + '_jGraduate_colorBoxEnd" class="colorBox"></div>' +
+			            	'<label id="' + id + '_jGraduate_endOpacity">100%</label>' +
+    	    	    	'</div>' +
+    	    	    '</div>' +
+    	    	    '<div class="jGraduate_OpacityField">' +
+    	    	    	'<label class="jGraduate_OpacityLabel">A: </label>' +
+    	    	    	'<input type="text" id="' + id + '_jGraduate_OpacityInput" class="jGraduate_OpacityInput" size="3" value="100"/>%' +
+    	    	    '</div>' +
+    	       	'</div>' +
+        	    '<div class="jGraduate_OkCancel">' +
+            		'<input type="button" id="' + id + '_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' +
+            		'<input type="button" id="' + id + '_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' +
+            	'</div>' +
+            	'<div class="jGraduate_LightBox"></div>' +
+            	'<div id="' + id + '_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>');
+			
+			// --------------
+            // Set up all the SVG elements (the gradient, stops and rectangle)
+            var MAX = 256, MARGINX = 0, MARGINY = 0, STOP_RADIUS = 15/2,
+            	SIZEX = MAX - 2*MARGINX, SIZEY = MAX - 2*MARGINY;
+            var container = document.getElementById(id+'_jGraduate_GradContainer');
+            var svg = container.appendChild(document.createElementNS(ns.svg, 'svg'));
+            svg.id = id+'_jgraduate_svg';            
+            svg.setAttribute('width', MAX);
+            svg.setAttribute('height', MAX);
+			svg.setAttribute("xmlns", ns.svg);
+			
+			// if we are sent a gradient, import it 
+			if ($this.paint.type == "linearGradient") {
+				$this.paint.linearGradient.id = id+'_jgraduate_grad';
+				$this.paint.linearGradient = svg.appendChild($.cloneNode($this.paint.linearGradient));
+			}
+			else { // we create a gradient
+				var grad = svg.appendChild(document.createElementNS(ns.svg, 'linearGradient'));
+				grad.id = id+'_jgraduate_grad';
+				grad.setAttribute('x1','0.0');
+				grad.setAttribute('y1','0.0');
+				grad.setAttribute('x2','1.0');
+				grad.setAttribute('y2','1.0');
+				
+				var begin = grad.appendChild(document.createElementNS(ns.svg, 'stop'));
+				begin.setAttribute('offset', '0.0');
+				begin.setAttribute('stop-color', '#ff0000');
+
+				var end = grad.appendChild(document.createElementNS(ns.svg, 'stop'));
+				end.setAttribute('offset', '1.0');
+				end.setAttribute('stop-color', '#ffff00');
+			
+				$this.paint.linearGradient = grad;
+			}
+
+			var gradalpha = $this.paint.alpha;
+            $('#' + id + '_jGraduate_OpacityInput').val(gradalpha);
+			var posx = parseInt(255*(gradalpha/100)) - 4.5;
+            $('#' + id + '_jGraduate_AlphaArrows').css({'margin-left':posx});
+            $('#' + id + '_jgraduate_rect').attr('fill-opacity', gradalpha/100);
+			
+			var x1 = parseFloat($this.paint.linearGradient.getAttribute('x1')||0.0),
+				y1 = parseFloat($this.paint.linearGradient.getAttribute('y1')||0.0),
+				x2 = parseFloat($this.paint.linearGradient.getAttribute('x2')||1.0),
+				y2 = parseFloat($this.paint.linearGradient.getAttribute('y2')||0.0);
+			
+            var rect = document.createElementNS(ns.svg, 'rect');
+            rect.id = id + '_jgraduate_rect';
+            rect.setAttribute('x', MARGINX);
+            rect.setAttribute('y', MARGINY);
+            rect.setAttribute('width', SIZEY);
+            rect.setAttribute('height', SIZEY);
+            rect.setAttribute('fill', 'url(#'+id+'_jgraduate_grad)');
+            rect.setAttribute('fill-opacity', '1.0');
+            rect = svg.appendChild(rect);
+            
+            // stop visuals created here
+            var beginStop = document.createElementNS(ns.svg, 'image');
+            beginStop.id = id + "_stop1";
+            beginStop.setAttribute('class', 'stop');
+            beginStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif');
+            beginStop.setAttributeNS(ns.xlink, "title", "Begin Stop");
+            beginStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild(
+            	document.createTextNode("Begin Stop"));
+            beginStop.setAttribute('width', 18);
+            beginStop.setAttribute('height', 18);
+            beginStop.setAttribute('x', MARGINX + SIZEX*x1 - STOP_RADIUS);
+            beginStop.setAttribute('y', MARGINY + SIZEY*y1 - STOP_RADIUS);
+            beginStop.setAttribute('cursor', 'move');
+            // must append only after setting all attributes due to Webkit Bug 27952
+            // https://bugs.webkit.org/show_bug.cgi?id=27592
+            beginStop = svg.appendChild(beginStop);
+            
+            var endStop = document.createElementNS(ns.svg, 'image');
+            endStop.id = id + "_stop2";
+            endStop.setAttribute('class', 'stop');
+            endStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif');
+            endStop.setAttributeNS(ns.xlink, "title", "End Stop");
+            endStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild(
+            	document.createTextNode("End Stop"));
+            endStop.setAttribute('width', 18);
+            endStop.setAttribute('height', 18);
+            endStop.setAttribute('x', MARGINX + SIZEX*x2 - STOP_RADIUS);
+            endStop.setAttribute('y', MARGINY + SIZEY*y2 - STOP_RADIUS);
+            endStop.setAttribute('cursor', 'move');
+            endStop = svg.appendChild(endStop);
+            
+            // bind GUI elements
+            $('#'+id+'_jGraduate_Ok').bind('click', function() {
+            	$this.paint.type = "linearGradient";
+				$this.paint.solidColor = null;
+            	okClicked();
+            });
+            $('#'+id+'_jGraduate_Cancel').bind('click', function(paint) {
+            	cancelClicked();
+            });
+            
+            var x1 = $this.paint.linearGradient.getAttribute('x1');
+            if(!x1) x1 = "0.0";
+            x1Input = $('#'+id+'_jGraduate_x1');
+            x1Input.val(x1);
+            x1Input.change( function() {
+            	if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { 
+            		this.value = 0.0; 
+            	}
+            	$this.paint.linearGradient.setAttribute('x1', this.value);
+            	beginStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS);
+            });
+
+            var y1 = $this.paint.linearGradient.getAttribute('y1');
+            if(!y1) y1 = "0.0";
+            y1Input = $('#'+id+'_jGraduate_y1');
+            y1Input.val(y1);
+            y1Input.change( function() {
+            	if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { 
+            		this.value = 0.0; 
+            	}
+            	$this.paint.linearGradient.setAttribute('y1', this.value);
+            	beginStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS);
+            });
+            
+            var x2 = $this.paint.linearGradient.getAttribute('x2');
+            if(!x2) x2 = "1.0";
+            x2Input = $('#'+id+'_jGraduate_x2');
+            x2Input.val(x2);
+            x2Input.change( function() {
+            	if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { 
+            		this.value = 1.0;
+            	}
+            	$this.paint.linearGradient.setAttribute('x2', this.value);
+            	endStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS);
+            });
+            
+            var y2 = $this.paint.linearGradient.getAttribute('y2');
+            if(!y2) y2 = "0.0";
+            y2Input = $('#'+id+'_jGraduate_y2');
+            y2Input.val(y2);
+            y2Input.change( function() {
+            	if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { 
+            		this.value = 0.0;
+            	}
+            	$this.paint.linearGradient.setAttribute('y2', this.value);
+            	endStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS);
+            });            
+            
+            var stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop');
+            var numstops = stops.length;
+            // if there are not at least two stops, then 
+            if (numstops < 2) {
+	            while (numstops < 2) {
+    	        	$this.paint.linearGradient.appendChild( document.createElementNS(ns.svg, 'stop') );
+        	    	++numstops;
+            	}
+            	stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop');
+            }
+            
+            var setOpacitySlider = function(e, div) {
+            	var offset = div.offset();
+            	var x = (e.pageX - offset.left - parseInt(div.css('border-left-width')));
+            	if (x > 255) x = 255;
+            	if (x < 0) x = 0;
+            	var posx = x - 4.5;
+            	x /= 255;
+            	$('#' + id + '_jGraduate_AlphaArrows').css({'margin-left':posx});
+            	$('#' + id + '_jgraduate_rect').attr('fill-opacity', x);
+            	x = parseInt(x*100);
+            	$('#' + id + '_jGraduate_OpacityInput').val(x);
+            	$this.paint.alpha = x;
+            };
+            
+            // handle dragging on the opacity slider
+            var bSlidingOpacity = false;
+            $('.jGraduate_Opacity').mousedown(function(evt) {
+            	setOpacitySlider(evt, $(this));
+            	bSlidingOpacity = true;
+            	evt.preventDefault();
+            });
+            $('.jGraduate_Opacity').mousemove(function(evt) {
+            	if (bSlidingOpacity) {
+            		setOpacitySlider(evt, $(this));
+            		evt.preventDefault();
+            	}
+            });
+            $('.jGraduate_Opacity').mouseup(function(evt) {
+            	setOpacitySlider(evt, $(this));
+            	bSlidingOpacity = false;
+            	evt.preventDefault();
+            });
+            
+			// handle dragging the stop around the swatch
+            var draggingStop = null;
+            var startx = -1, starty = -1;
+            // for whatever reason, Opera does not allow $('image.stop') here,
+            // and Firefox 1.5 does not allow $('.stop')
+            $('.stop, #color_picker_jGraduate_GradContainer image').mousedown(function(evt) {
+            	draggingStop = this;
+            	startx = evt.clientX;
+            	starty = evt.clientY;
+            	evt.preventDefault();
+            });
+            $('#'+id+'_jgraduate_svg').mousemove(function(evt) {
+            	if (null != draggingStop) {
+            		var dx = evt.clientX - startx;
+            		var dy = evt.clientY - starty;
+            		startx += dx;
+            		starty += dy;
+            		var x = parseFloat(draggingStop.getAttribute('x')) + dx;
+            		var y = parseFloat(draggingStop.getAttribute('y')) + dy;
+
+					// clamp stop to the swatch
+            		if (x < MARGINX - STOP_RADIUS) x = MARGINX - STOP_RADIUS;
+            		if (y < MARGINY - STOP_RADIUS) y = MARGINY - STOP_RADIUS;
+            		if (x > MARGINX + SIZEX - STOP_RADIUS) x = MARGINX + SIZEX - STOP_RADIUS;
+            		if (y > MARGINY + SIZEY - STOP_RADIUS) y = MARGINY + SIZEY - STOP_RADIUS;
+            		            		
+            		draggingStop.setAttribute('x', x);
+            		draggingStop.setAttribute('y', y);
+
+					// calculate stop offset            		
+            		var fracx = (x - MARGINX + STOP_RADIUS)/SIZEX;
+            		var fracy = (y - MARGINY + STOP_RADIUS)/SIZEY;
+            		
+            		if (draggingStop.id == (id+'_stop1')) {
+            			x1Input.val(fracx);
+            			y1Input.val(fracy);
+            			$this.paint.linearGradient.setAttribute('x1', fracx);
+            			$this.paint.linearGradient.setAttribute('y1', fracy);
+            		}
+            		else {
+            			x2Input.val(fracx);
+            			y2Input.val(fracy);
+            			$this.paint.linearGradient.setAttribute('x2', fracx);
+            			$this.paint.linearGradient.setAttribute('y2', fracy);
+            		}
+            		
+            		evt.preventDefault();
+            	}
+            });
+            $('#'+id+'_jgraduate_svg').mouseup(function(evt) {
+            	draggingStop = null;
+            });
+            
+            var beginColor = stops[0].getAttribute('stop-color');
+            if(!beginColor) beginColor = '#000';
+            beginColorBox = $('#'+id+'_jGraduate_colorBoxBegin');
+            beginColorBox.css({'background-color':beginColor});
+
+            var beginOpacity = stops[0].getAttribute('stop-opacity');
+            if(!beginOpacity) beginOpacity = '1.0';
+            $('#'+id+'jGraduate_beginOpacity').html( (beginOpacity*100)+'%' );
+
+            var endColor = stops[stops.length-1].getAttribute('stop-color');
+            if(!endColor) endColor = '#000';
+            endColorBox = $('#'+id+'_jGraduate_colorBoxEnd');
+            endColorBox.css({'background-color':endColor});
+
+            var endOpacity = stops[stops.length-1].getAttribute('stop-opacity');
+            if(!endOpacity) endOpacity = '1.0';
+            $('#'+id+'jGraduate_endOpacity').html( (endOpacity*100)+'%' );
+            
+			$('#'+id+'_jGraduate_colorBoxBegin').click(function() {
+				$('div.jGraduate_LightBox').show();			
+				var colorbox = $(this);
+				var thisAlpha = (parseFloat(beginOpacity)*255).toString(16);
+				while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
+				color = beginColor.substr(1) + thisAlpha;
+				$('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({
+						window: { title: "Pick the start color and opacity for the gradient" },
+						images: { clientPath: $settings.images.clientPath },
+						color: { active: color, alphaSupport: true }
+					}, function(color){
+						beginColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none";
+						beginOpacity = color.get_A() ? color.get_A()/100 : 1;
+						colorbox.css('background', beginColor);
+						$('#'+id+'_jGraduate_beginOpacity').html(parseInt(beginOpacity*100)+'%');
+            			stops[0].setAttribute('stop-color', beginColor);
+						stops[0].setAttribute('stop-opacity', beginOpacity);
+						$('div.jGraduate_LightBox').hide();
+						$('#'+id+'_jGraduate_stopPicker').hide();
+					}, null, function() {
+						$('div.jGraduate_LightBox').hide();
+						$('#'+id+'_jGraduate_stopPicker').hide();
+					});
+			});
+			$('#'+id+'_jGraduate_colorBoxEnd').click(function() {
+				$('div.jGraduate_LightBox').show();
+				var colorbox = $(this);
+				var thisAlpha = (parseFloat(endOpacity)*255).toString(16);
+				while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
+				color = endColor.substr(1) + thisAlpha;
+				$('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'top': 15}).jPicker({
+						window: { title: "Pick the end color and opacity for the gradient" },
+						images: { clientPath: $settings.images.clientPath },
+						color: { active: color, alphaSupport: true }
+					}, function(color){
+						endColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none";
+						endOpacity = color.get_A() ? color.get_A()/100 : 1;
+						colorbox.css('background', endColor);
+						$('#'+id+'_jGraduate_endOpacity').html(parseInt(endOpacity*100)+'%');
+            			stops[1].setAttribute('stop-color', endColor);
+						stops[1].setAttribute('stop-opacity', endOpacity);
+						$('div.jGraduate_LightBox').hide();
+						$('#'+id+'_jGraduate_stopPicker').hide();
+					}, null, function() {
+						$('div.jGraduate_LightBox').hide();
+						$('#'+id+'_jGraduate_stopPicker').hide();
+					});
+			});            
+            
+			// --------------
+			var thisAlpha = ($this.paint.alpha*255/100).toString(16);
+			while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
+			color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha;
+			colPicker.jPicker(
+				{
+					window: { title: $settings.window.pickerTitle },
+					images: { clientPath: $settings.images.clientPath },
+					color: { active: color, alphaSupport: true }
+				},
+				function(color) {
+					$this.paint.type = "solidColor";
+					$this.paint.alpha = color.get_A() ? color.get_A() : 100;
+					$this.paint.solidColor = color.get_Hex() ? color.get_Hex() : "none";
+					$this.paint.linearGradient = null;
+					okClicked(); 
+				},
+				null,
+				function(){ cancelClicked(); }
+				);
+				
+			$(idref + ' .jGraduate_tab_color').click( function(){
+				$(idref + ' .jGraduate_tab_lingrad').removeClass('jGraduate_tab_current');
+				$(idref + ' .jGraduate_tab_color').addClass('jGraduate_tab_current');
+				lgPicker.hide();
+				colPicker.show();
+			});
+			$(idref + ' .jGraduate_tab_lingrad').click( function(){
+				$(idref + ' .jGraduate_tab_color').removeClass('jGraduate_tab_current');
+				$(idref + ' .jGraduate_tab_lingrad').addClass('jGraduate_tab_current');
+				colPicker.hide();
+				lgPicker.show();
+			});
+			
+			if ($this.paint.type == "linearGradient") {
+				lgPicker.show();
+				colPicker.hide();
+				$(idref + ' .jGraduate_tab_color').removeClass('jGraduate_tab_current');
+				$(idref + ' .jGraduate_tab_lingrad').addClass('jGraduate_tab_current');				
+			}
+			else {
+				colPicker.show();
+				lgPicker.hide();
+				$(idref + ' .jGraduate_tab_color').addClass('jGraduate_tab_current');
+				$(idref + ' .jGraduate_tab_lingrad').removeClass('jGraduate_tab_current');				
+			}
+
+			$this.show();
+		});
+	};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.min.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,1 @@
+;var ns={svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink"};if(!window.console){window.console=new function(){this.log=function(a){};this.dir=function(a){}}}$.jGraduate={Paint:function(b){var a=b||{};this.alpha=a.alpha||100;if(a.copy){this.type=a.copy.type;this.alpha=a.copy.alpha;switch(this.type){case"none":this.solidColor=null;this.linearGradient=null;break;case"solidColor":this.solidColor=a.copy.solidColor;this.linearGradient=null;break;case"linearGradient":this.solidColor=null;this.linearGradient=a.copy.linearGradient.cloneNode(true);break}}else{if(a.linearGradient){this.type="linearGradient";this.solidColor=null;this.linearGradient=a.linearGradient.cloneNode(true)}else{if(a.solidColor){this.type="solidColor";this.solidColor=a.solidColor}else{this.type="none";this.solidColor=null;this.linearGradient=null}}}}};jQuery.fn.jGraduateDefaults={paint:new $.jGraduate.Paint(),window:{pickerTitle:"Drag markers to pick a paint",},images:{clientPath:"images/",},};jQuery.fn.jGraduate=function(b){var a=arguments;return this.each(function(){var l=$(this),m=$.extend(true,{},jQuery.fn.jGraduateDefaults,b),H=l.attr("id"),e="#"+l.attr("id")+" ";if(!e){alert("Container element must have an id attribute to maintain unique id strings for sub-elements.");return}var c=function(){$.isFunction(l.okCallback)&&l.okCallback(l.paint);l.hide()},i=function(){$.isFunction(l.cancelCallback)&&l.cancelCallback();l.hide()};$.extend(true,l,{paint:new $.jGraduate.Paint({copy:m.paint}),okCallback:$.isFunction(a[1])&&a[1]||null,cancelCallback:$.isFunction(a[2])&&a[2]||null,});var F=l.position(),B=null;if(l.paint.type=="none"){l.paint=$.jGraduate.Paint({solidColor:"ffffff"})}l.addClass("jGraduate_Picker");l.html('<ul class="jGraduate_tabs"><li class="jGraduate_tab_color jGraduate_tab_current">Solid Color</li><li class="jGraduate_tab_lingrad">Linear Gradient</li></ul><div class="jGraduate_colPick"></div><div class="jGraduate_lgPick"></div>');var K=$(e+"> .jGraduate_colPick");var s=$(e+"> .jGraduate_lgPick");s.html('<div id="'+H+'_jGraduate_Swatch" class="jGraduate_Swatch"><h2 class="jGraduate_Title">'+m.window.pickerTitle+'</h2><div id="'+H+'_jGraduate_GradContainer" class="jGraduate_GradContainer"></div><div id="'+H+'_jGraduate_Opacity" class="jGraduate_Opacity" title="Click to set overall opacity of the gradient paint"><img id="'+H+'_jGraduate_AlphaArrows" class="jGraduate_AlphaArrows" src="'+m.images.clientPath+'rangearrows2.gif"></img></div></div><div class="jGraduate_Form"><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">Begin Stop</label><div class="jGraduate_Form_Section"><label>x:</label><input type="text" id="'+H+'_jGraduate_x1" size="3" title="Enter starting x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+H+'_jGraduate_y1" size="3" title="Enter starting y value between 0.0 and 1.0"/><div id="'+H+'_jGraduate_colorBoxBegin" class="colorBox"></div><label id="'+H+'_jGraduate_beginOpacity"> 100%</label></div></div><div class="jGraduate_StopSection"><label class="jGraduate_Form_Heading">End Stop</label><div class="jGraduate_Form_Section"><label>x:</label><input type="text" id="'+H+'_jGraduate_x2" size="3" title="Enter ending x value between 0.0 and 1.0"/><label> y:</label><input type="text" id="'+H+'_jGraduate_y2" size="3" title="Enter ending y value between 0.0 and 1.0"/><div id="'+H+'_jGraduate_colorBoxEnd" class="colorBox"></div><label id="'+H+'_jGraduate_endOpacity">100%</label></div></div><div class="jGraduate_OpacityField"><label class="jGraduate_OpacityLabel">A: </label><input type="text" id="'+H+'_jGraduate_OpacityInput" class="jGraduate_OpacityInput" size="3" value="100"/>%</div></div><div class="jGraduate_OkCancel"><input type="button" id="'+H+'_jGraduate_Ok" class="jGraduate_Ok" value="OK"/><input type="button" id="'+H+'_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/></div><div class="jGraduate_LightBox"></div><div id="'+H+'_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>');var N=256,E=0,D=0,j=15/2,w=N-2*E,u=N-2*D;var G=document.getElementById(H+"_jGraduate_GradContainer");var g=G.appendChild(document.createElementNS(ns.svg,"svg"));g.id=H+"_jgraduate_svg";g.setAttribute("width",N);g.setAttribute("height",N);g.setAttribute("xmlns",ns.svg);if(l.paint.type=="linearGradient"){l.paint.linearGradient.id=H+"_jgraduate_grad";l.paint.linearGradient=g.appendChild(document.importNode(l.paint.linearGradient,true))}else{var v=g.appendChild(document.createElementNS(ns.svg,"linearGradient"));v.id=H+"_jgraduate_grad";v.setAttribute("x1","0.0");v.setAttribute("y1","0.0");v.setAttribute("x2","1.0");v.setAttribute("y2","1.0");var o=v.appendChild(document.createElementNS(ns.svg,"stop"));o.setAttribute("offset","0.0");o.setAttribute("stop-color","#ff0000");var t=v.appendChild(document.createElementNS(ns.svg,"stop"));t.setAttribute("offset","1.0");t.setAttribute("stop-color","#ffff00");l.paint.linearGradient=v}var z=l.paint.alpha;$("#"+H+"_jGraduate_OpacityInput").val(z);var r=parseInt(255*(z/100))-4.5;$("#"+H+"_jGraduate_AlphaArrows").css({"margin-left":r});$("#"+H+"_jgraduate_rect").attr("fill-opacity",z/100);var q=parseFloat(l.paint.linearGradient.getAttribute("x1")||0);var Q=parseFloat(l.paint.linearGradient.getAttribute("y1")||0);var p=parseFloat(l.paint.linearGradient.getAttribute("x2")||1);var P=parseFloat(l.paint.linearGradient.getAttribute("y2")||0);var C=document.createElementNS(ns.svg,"rect");C.id=H+"_jgraduate_rect";C.setAttribute("x",E);C.setAttribute("y",D);C.setAttribute("width",u);C.setAttribute("height",u);C.setAttribute("fill","url(#"+H+"_jgraduate_grad)");C.setAttribute("fill-opacity","1.0");C=g.appendChild(C);var k=document.createElementNS(ns.svg,"image");k.id=H+"_stop1";k.setAttribute("class","stop");k.setAttributeNS(ns.xlink,"href",m.images.clientPath+"mappoint.gif");k.setAttributeNS(ns.xlink,"title","Begin Stop");k.appendChild(document.createElementNS(ns.svg,"title")).appendChild(document.createTextNode("Begin Stop"));k.setAttribute("width",18);k.setAttribute("height",18);k.setAttribute("x",E+w*q-j);k.setAttribute("y",D+u*Q-j);k.setAttribute("cursor","move");k=g.appendChild(k);var M=document.createElementNS(ns.svg,"image");M.id=H+"_stop2";M.setAttribute("class","stop");M.setAttributeNS(ns.xlink,"href",m.images.clientPath+"mappoint.gif");M.setAttributeNS(ns.xlink,"title","End Stop");M.appendChild(document.createElementNS(ns.svg,"title")).appendChild(document.createTextNode("End Stop"));M.setAttribute("width",18);M.setAttribute("height",18);M.setAttribute("x",E+w*p-j);M.setAttribute("y",D+u*P-j);M.setAttribute("cursor","move");M=g.appendChild(M);$("#"+H+"_jGraduate_Ok").bind("click",function(){l.paint.type="linearGradient";l.paint.solidColor=null;c()});$("#"+H+"_jGraduate_Cancel").bind("click",function(R){i()});var q=l.paint.linearGradient.getAttribute("x1");if(!q){q="0.0"}x1Input=$("#"+H+"_jGraduate_x1");x1Input.val(q);x1Input.change(function(){if(isNaN(parseFloat(this.value))||this.value<0||this.value>1){this.value=0}l.paint.linearGradient.setAttribute("x1",this.value);k.setAttribute("x",E+w*this.value-j)});var Q=l.paint.linearGradient.getAttribute("y1");if(!Q){Q="0.0"}y1Input=$("#"+H+"_jGraduate_y1");y1Input.val(Q);y1Input.change(function(){if(isNaN(parseFloat(this.value))||this.value<0||this.value>1){this.value=0}l.paint.linearGradient.setAttribute("y1",this.value);k.setAttribute("y",D+u*this.value-j)});var p=l.paint.linearGradient.getAttribute("x2");if(!p){p="1.0"}x2Input=$("#"+H+"_jGraduate_x2");x2Input.val(p);x2Input.change(function(){if(isNaN(parseFloat(this.value))||this.value<0||this.value>1){this.value=1}l.paint.linearGradient.setAttribute("x2",this.value);M.setAttribute("x",E+w*this.value-j)});var P=l.paint.linearGradient.getAttribute("y2");if(!P){P="0.0"}y2Input=$("#"+H+"_jGraduate_y2");y2Input.val(P);y2Input.change(function(){if(isNaN(parseFloat(this.value))||this.value<0||this.value>1){this.value=0}l.paint.linearGradient.setAttribute("y2",this.value);M.setAttribute("y",D+u*this.value-j)});var A=l.paint.linearGradient.getElementsByTagNameNS(ns.svg,"stop");var I=A.length;if(I<2){while(I<2){l.paint.linearGradient.appendChild(document.createElementNS(ns.svg,"stop"));++I}A=l.paint.linearGradient.getElementsByTagNameNS(ns.svg,"stop")}var n=function(T,V){var U=V.offset();var S=(T.pageX-U.left-parseInt(V.css("border-left-width")));if(S>255){S=255}if(S<0){S=0}var R=S-4.5;S/=255;$("#"+H+"_jGraduate_AlphaArrows").css({"margin-left":R});$("#"+H+"_jgraduate_rect").attr("fill-opacity",S);S=parseInt(S*100);$("#"+H+"_jGraduate_OpacityInput").val(S);l.paint.alpha=S};var O=false;$(".jGraduate_Opacity").mousedown(function(R){n(R,$(this));O=true;R.preventDefault()});$(".jGraduate_Opacity").mousemove(function(R){if(O){n(R,$(this));R.preventDefault()}});$(".jGraduate_Opacity").mouseup(function(R){n(R,$(this));O=false;R.preventDefault()});var L=null;var h=-1,f=-1;$(".stop, #color_picker_jGraduate_GradContainer image").mousedown(function(R){L=this;h=R.clientX;f=R.clientY;R.preventDefault()});$("#"+H+"_jgraduate_svg").mousemove(function(T){if(null!=L){var V=T.clientX-h;var S=T.clientY-f;h+=V;f+=S;var R=parseFloat(L.getAttribute("x"))+V;var X=parseFloat(L.getAttribute("y"))+S;if(R<E-j){R=E-j}if(X<D-j){X=D-j}if(R>E+w-j){R=E+w-j}if(X>D+u-j){X=D+u-j}L.setAttribute("x",R);L.setAttribute("y",X);var W=(R-E+j)/w;var U=(X-D+j)/u;if(L.id==(H+"_stop1")){x1Input.val(W);y1Input.val(U);l.paint.linearGradient.setAttribute("x1",W);l.paint.linearGradient.setAttribute("y1",U)}else{x2Input.val(W);y2Input.val(U);l.paint.linearGradient.setAttribute("x2",W);l.paint.linearGradient.setAttribute("y2",U)}T.preventDefault()}});$("#"+H+"_jgraduate_svg").mouseup(function(R){L=null});var J=A[0].getAttribute("stop-color");if(!J){J="#000"}beginColorBox=$("#"+H+"_jGraduate_colorBoxBegin");beginColorBox.css({"background-color":J});var x=A[0].getAttribute("stop-opacity");if(!x){x="1.0"}$("#"+H+"jGraduate_beginOpacity").html((x*100)+"%");var d=A[A.length-1].getAttribute("stop-color");if(!d){d="#000"}endColorBox=$("#"+H+"_jGraduate_colorBoxEnd");endColorBox.css({"background-color":d});var y=A[A.length-1].getAttribute("stop-opacity");if(!y){y="1.0"}$("#"+H+"jGraduate_endOpacity").html((y*100)+"%");$("#"+H+"_jGraduate_colorBoxBegin").click(function(){$("div.jGraduate_LightBox").show();var R=$(this);B=new $.jPicker.Color({hex:J.substr(1),a:(parseFloat(x)*100)});$("#"+H+"_jGraduate_stopPicker").css({left:100,bottom:15}).jPicker({window:{title:"Pick the start color and opacity for the gradient"},images:{clientPath:m.images.clientPath},color:{active:B,alphaSupport:true}},function(S){J="#"+this.settings.color.active.hex;x=this.settings.color.active.a/100;R.css("background",J);$("#"+H+"_jGraduate_beginOpacity").html(parseInt(x*100)+"%");A[0].setAttribute("stop-color",J);A[0].setAttribute("stop-opacity",x);$("div.jGraduate_LightBox").hide();$("#"+H+"_jGraduate_stopPicker").hide()},null,function(){$("div.jGraduate_LightBox").hide();$("#"+H+"_jGraduate_stopPicker").hide()})});$("#"+H+"_jGraduate_colorBoxEnd").click(function(){$("div.jGraduate_LightBox").show();var R=$(this);B=new $.jPicker.Color({hex:d.substr(1),a:(parseFloat(y)*100)});$("#"+H+"_jGraduate_stopPicker").css({left:100,top:15}).jPicker({window:{title:"Pick the end color and opacity for the gradient"},images:{clientPath:m.images.clientPath},color:{active:B,alphaSupport:true}},function(S){d="#"+this.settings.color.active.hex;y=this.settings.color.active.a/100;R.css("background",d);$("#"+H+"_jGraduate_endOpacity").html(parseInt(y*100)+"%");A[1].setAttribute("stop-color",d);A[1].setAttribute("stop-opacity",y);$("div.jGraduate_LightBox").hide();$("#"+H+"_jGraduate_stopPicker").hide()},null,function(){$("div.jGraduate_LightBox").hide();$("#"+H+"_jGraduate_stopPicker").hide()})});K.jPicker({window:{title:m.window.pickerTitle},images:{clientPath:m.images.clientPath},color:{active:new $.jPicker.Color({hex:l.paint.solidColor,a:l.paint.alpha}),alphaSupport:true}},function(R){l.paint.type="solidColor";l.paint.alpha=R.a;l.paint.solidColor=R.hex;l.paint.linearGradient=null;c()},null,function(){i()});$(e+" .jGraduate_tab_color").click(function(){$(e+" .jGraduate_tab_lingrad").removeClass("jGraduate_tab_current");$(e+" .jGraduate_tab_color").addClass("jGraduate_tab_current");s.hide();K.show()});$(e+" .jGraduate_tab_lingrad").click(function(){$(e+" .jGraduate_tab_color").removeClass("jGraduate_tab_current");$(e+" .jGraduate_tab_lingrad").addClass("jGraduate_tab_current");K.hide();s.show()});if(l.paint.type=="linearGradient"){s.show();K.hide();$(e+" .jGraduate_tab_color").removeClass("jGraduate_tab_current");$(e+" .jGraduate_tab_lingrad").addClass("jGraduate_tab_current")}else{K.show();s.hide();$(e+" .jGraduate_tab_color").addClass("jGraduate_tab_current");$(e+" .jGraduate_tab_lingrad").removeClass("jGraduate_tab_current")}l.show()})};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.7.2.custom.min.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,34 @@
+/*
+ * jQuery UI 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/*
+ * jQuery UI Draggable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.2",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);;
+/* jQuery UI Slider 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/editor/jquery.js	Sun Jan 31 19:33:31 2010 +0100
@@ -0,0 +1,152 @@
+/*!
+ * jQuery JavaScript Library v1.4.1
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Jan 25 19:43:33 2010 -0500
+ */
+(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
+e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
+a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
+11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
+c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
+va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
+[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
+this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
+a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
+c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
+Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
+c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
+return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
+r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
+a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
+v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
+uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
+L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
+{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
+b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
+c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
+{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
+{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx&