SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
NeXTPLAN*
                             Enterprise software that rocks!
                                      with Seaside & Smalltalk




                            Johan Brichau - johan@inceptive.be




Friday 17 September 2010
NeXTPLAN is...

                    • A collaborative resource planning tool for
                           event organizers of all sizes.

                    • Developed for and with major player of
                           Belgian cultural scene (Vooruit, Gent).

                    • Features: Event planning, resource planning
                           & management, contact management, retro
                           planning, billing, reporting.



Friday 17 September 2010
NeXTPLAN*




Friday 17 September 2010
NeXTPLAN*




Friday 17 September 2010
In this talk....
                    •      Smalltalk and Seaside are an impressive
                           platform to create highly dynamic web
                           applications that blur the traditional distinction
                           with desktop applications

                    •      Some details:
                            • Local AJAX updates
                            • OODBs
                            • SVG + AJAX in Seaside
                            • Testing, porting to Gemstone


Friday 17 September 2010
Demo 1


                    • [demo to show component interactions in
                           calendar: grouped events & bubbles,
                           changing names, decoration]




Friday 17 September 2010
Component-based




Friday 17 September 2010
Component-based




Friday 17 September 2010
Component-based




Friday 17 September 2010
Ajax Updates Architecture

                    • Every operation eventually invokes the
                           update rendering

                    • Update rendering
                            • Component re-rendering
                            • Ajax-jQuery replace operation




Friday 17 September 2010
Global Ajax Update




Friday 17 September 2010
Global Ajax Update




Friday 17 September 2010
Global Ajax Update
                  scriptToUpdatebodyOn: html
                     ^ (html jQuery: #cells)
                            load: [:r | self renderCellsOn: r]




                           + Easy and crisp
                           + Universally applicable

                           - Re-renders too much (too long!)
                           - Wastes in-place editing advantage
                           - Most of the time updates are local

Friday 17 September 2010
Local updates




Friday 17 September 2010
Local updates




Friday 17 September 2010
Local updates




Friday 17 September 2010
Local updates




Friday 17 September 2010
Local updates




             Updates of other users (via database changes)!
Friday 17 September 2010
Pitfalls
                    •      Instance variable values

                    •      Capture concurrent changes to calendar

                    •      Client side behavior (Javascript)
                            • Invoke again or not?

                    •      For example:
                            • Drag & drop of cells
                            • Context menu on cells
                            • Dynamic calendar extension on page scroll




Friday 17 September 2010
Seaside Design Pattern?
                            UpdateableComponent
                           htmlId
                           renderContentOn:       Complete render
                           renderInternalOn:      Internal render
                           needsRefresh           Wants to render?
                           scriptToUpdateOn:      Script to render




Friday 17 September 2010
Local updates
              CalendarComponent>>updateScriptOn: canvas
                ^ canvas jQuery ajax script: [:s |
                        self cells do: [:c|
                            c needsRefresh ifTrue:[
                                s << (c updateScriptOn: s)]]]




              Cell>>updateScriptOn: canvas
                ^(canvas jQuery id: self htmlId)
                            load:[:r| self renderInternalOn: r]




Friday 17 September 2010
Local updates
              CalendarComponent>>updateScriptOn: canvas
                ^ canvas jQuery ajax script: [:s |
                        self childrendo: [:c|
                              cells
                             c needsRefresh ifTrue:[
                                 s << (c updateScriptOn: s)]]]




              Cell>>updateScriptOn: canvas
                ^(canvas jQuery id: self htmlId)
                            load:[:r| self renderInternalOn: r]




Friday 17 September 2010
Local updates
              CalendarComponent>>updateScriptOn: canvas
                ^ canvas jQuery ajax script: [:s |
                        self childrendo: [:c|
                              cells
                             c needsRefresh ifTrue:[
                                 s << (c updateScriptOn: s)]]]




              Cell>>updateScriptOn: canvas
                ^(canvas jQuery id: self htmlId)
                            load:[:r| self renderInternalOn: r]
                     replaceWith:           renderContentOn:




Friday 17 September 2010
Local updates



                  • Own session changes
                           • True object-based change propagation

                  • Concurrent session changes
                           • Manual handling


Friday 17 September 2010
SVG in Seaside
                    • SeasideDynamicSVG package
                           • SVG canvas & brushes
                           • SVG + jQuery

                    • SVG + AJAX
                           • Dynamic load of svg content
                           • Problem: Painterʼs algorithm for "z-index"
                           • Solution: svgLoad


Friday 17 September 2010
Demo 2


                  • [show Tree view animations driven by Ajax
                           updates]




Friday 17 September 2010
JQuery svgLoad
                                       <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>NextPlan Structure Editor 0.24</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><meta http-equiv="Content-Script-Type" content="text/javascript"/><link rel="stylesheet" type="text/css" href="/files/WADevelopmentFiles/development.css"/><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/main.css"/><link rel="stylesheet stylesheet"
                                       type="text/css" href="./stylesheets/calendar.css"/><script type="text/javascript" src="./javascripts/jQuery.js"></script><script type="text/javascript" src="./javascripts/jQueryUi.js"></script><script type="text/javascript" src="./javascripts/underscore.js"></script><script type="text/javascript" src="./javascripts/calendar-scripts.js"></script><script type="text/javascript" src="./javascripts/jquery.viewportforframe.js"></script><script type="text/javascript" src="./
                                       javascripts/jquery.tablesorter.bugfixed.js"></script><script type="text/javascript" src="./javascripts/resizable-tables.js"></script><script type="text/javascript" src="./javascripts/jquery.rightClick.js"></script><script type="text/javascript" src="./javascripts/resourcefinder.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.masked.js"></script><script
                                       type="text/javascript" src="./javascripts/jquery.maskedinput-1.2.2.min.js"></script><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/se.css"/><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/mbMenusvgPatched.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jqueryhoverintent.js"></script><script type="text/javascript" src="./javascripts/keynavigation.js"></script><script type="text/
                                       javascript" src="./javascripts/textselection.js"></script><script type="text/javascript" src="./javascripts/jquery.svg.js"></script><script type="text/javascript" src="./javascripts/jquery.svgdom.js"></script><script type="text/javascript" src="./javascripts/jquery.svganim.js"></script><script type="text/javascript" src="./javascripts/jquery.svgpatch.js"></script><script type="text/javascript" src="./javascripts/se-scripts.js"></script><script type="text/javascript"
                                       src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/np-common.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jeditable.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDeploymentLibrary/jquerymetadata.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></
                                       script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script></head><body id="calendar-tab" oncontextmenu="return false;" onload="onLoad()"><div id="branding"><h1><a title="Go to the homepage" href="/">NextPlan</a></h1><ul><li id="skip-to-main"><a href="#nav-main">Skip to main navigation</a></li><li id="skip-to-tools"><a href="#nav-tools">Skip to tools</a></li><li
                                       id="skip-to-user"><a href="#nav-user">Skip to user panel</a></li></ul></div><div id="treeeditor" style="position:relative;margin:0 auto;width:100%;height:100%;min-height:100%;"><div id="menucontainer"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100px" height="80px"><g id="menu_background"><path d="M86,29.5c0,6.627-5.373,12-12,12H22c-6.627,0-12-5.373-12-12v-16c0-6.627,5.373-12,12-12h52c6.627,0,12,5.373,12,12V29.5z"></path></
                                       g><g id="clock_icon" class="active" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;7&quot;].join(&quot;&amp;&quot;)})" transform="translate(-49,-5)"><rect x="66" y="11.5" style="opacity:0" width="27" height="27"></rect><path d="M79.5,12.5C72.597,12.5,67,18.097,67,25s5.597,12.5,12.5,12.5S92,31.903,92,25S86.403,12.5,79.5,12.5z
                                       M79.5,34.5c-5.246,0-9.5-4.255-9.5-9.5c0-5.246,4.254-9.5,9.5-9.5c5.245,0,9.5,4.254,9.5,9.5C89,30.245,84.745,34.5,79.5,34.5z"></path><path d="M84.801,27.404c0.521,0.365,0.561,1.211,0.085,1.891l0,0c-0.476,0.678-1.284,0.932-1.806,0.566l-4.662-3.265c-0.522-0.366-0.561-1.212-0.086-1.891l0,0c0.477-0.679,1.285-0.933,1.806-0.567L84.801,27.404z"></path><path
                                       d="M81,25.346c0,0.637-0.672,1.154-1.5,1.154l0,0c-0.828,0-1.5-0.518-1.5-1.154v-6.691c0-0.638,0.672-1.154,1.5-1.154l0,0c0.828,0,1.5,0.517,1.5,1.154V25.346z"></path></g><g id="tree_icon" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;8&quot;].join(&quot;&amp;&quot;)})" transform="translate(50,7)"><rect x="0" y="-3.5" style="opacity:0"
                                       width="27" height="27"></rect><rect x="6" y="21.5" width="9" height="1"></rect><rect x="6" y="14.5" width="9" height="1"></rect><rect x="6" y="7.5" width="9" height="1"></rect><rect x="6" y="4.5" width="1" height="20"></rect><path d="M15,19.5v5h11v-5"></path><path d="M15,12.5v5h11v-5"></path><path d="M15,5.5v5h11v-5"></path><path d="M1,-0.5v5h11v-5"></path></g><g id="draft" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/
                                       NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;9&quot;].join(&quot;&amp;&quot;)})" transform="translate(25,60)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(6,8.8555)">DRAFT</text></g><g id="undo" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/
                                       NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;10&quot;].join(&quot;&amp;&quot;)})" transform="translate(10,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">UNDO</text></g><g id="redo" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/
                                       NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;11&quot;].join(&quot;&amp;&quot;)})" transform="translate(50,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">REDO</text></g></svg></div><div id="svgcontainer" class="svgcontainer" cMenu="canvasMenu"
                                       permissions="[&quot;addEvent&quot;,&quot;addResource&quot;]"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200px" height="642px"><g id="lines" xmlns="http://www.w3.org/2000/svg"><line id="lineNPCompositeEvent173-NPEvent144" x1="183" y1="313" x2="401" y2="54" style="stroke-width:2" class="SUIDdatetimenode1line NPResourceInstance85line SUIDnodelist6line SUIDresourcegroupnode2line SUIDresourcedetailnode3line
                                       SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPCompositeEvent173line NPEvent144line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent164" x1="183" y1="313" x2="401" y2="213" style="stroke-width:2" class="NPCompositeEvent173line NPEvent164line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent171" x1="183" y1="313" x2="401" y2="409"
                                       style="stroke-width:2" class="NPCompositeEvent173line NPEvent171line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-SUIDdatetimenode1" x1="529" y1="54" x2="651" y2="54" style="stroke-width:2" class="permanentselected NPCompositeEvent173line NPEvent144line SUIDdatetimenode1line nodeline eventline datetimenodeline" xmlns="http://www.w3.org/2000/svg"></line><g id="lineNPEvent144-NPResourceInstance85"
                                       class="permanentselected NPCompositeEvent173line NPEvent144line NPResourceInstance85line nodeline eventline locationnodeline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-NPResourceInstance85-hor" x1="621" y1="91" x2="651" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-NPResourceInstance85-vert" x1="621" y1="54" x2="621" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><g
                                       id="lineNPEvent144-SUIDnodelist6" class="permanentselected NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPEvent144line SUIDnodelist6line nodeline eventline nodelistline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-SUIDnodelist6-hor" x1="621" y1="128" x2="646" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-
                                       SUIDnodelist6-vert" x1="621" y1="54" x2="621" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><line id="lineSUIDresourcegroupnode2-SUIDresourcedetailnode3" x1="779" y1="128" x2="809" y2="128" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></
                                       line><line id="lineSUIDresourcegroupnode4-SUIDresourcedetailnode5" x1="779" y1="157" x2="809" y2="157" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode4line SUIDresourcedetailnode5line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></line></g><g id="nodes" xmlns="http://www.w3.org/2000/svg"><g id="NPCompositeEvent173" cMenu="eventMenu"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;"
                                       d="M188,314c0,6.627-5.373,12-12,12H62c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V314z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(62,305.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPCompositeEvent173-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello">Othello</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($
                                       ('#NPCompositeEvent173')[0]);$('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;The schedule of Othello2 exceeds the day boundaries&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello2 is already used by event(s) Othello3.&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello2 is already used by event(s) Othello3.&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPCompositeEvent173-alert" transform="translate(178,293)" xmlns="http://www.w3.org/2000/svg"><polygon
                                       style="fill:#FFF000" points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect
                                       x="8.347" y="11.756" width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent144" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4




                           z-index 1
                                       SUIDresourcedetailnode5 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,55c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent144-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello 1">Othello 1</pre></foreignObject></g><g id="SUIDdatetimenode1"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" cMenu="resourceMenu" class="datetimenode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,55c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDdatetimenode1-text" xmlns="http://www.w3.org/1999/xhtml" title="12-9-2010">12-9-2010</pre></foreignObject></g><g id="NPResourceInstance85"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;]" cMenu="resourceMenu" class="locationnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,92c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V92z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,83.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPResourceInstance85-text" xmlns="http://www.w3.org/1999/xhtml" title="Theaterzaal">Theaterzaal</pre></foreignObject><g style="display:none" id="NPResourceInstance85-arrow" xmlns="http://www.w3.org/
                                       2000/svg"><g class="arrow" xmlns="http://www.w3.org/2000/svg"><path transform="translate(764,87)" d="M 10 0 L 5 8 L 0 0 Z" xmlns="http://www.w3.org/2000/svg"></path></g></g></g><g id="SUIDresourcegroupnode2" permissions="[]" cMenu="resourceMenu" class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,129c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V129z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,120.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode2-text" xmlns="http://www.w3.org/1999/xhtml" title="Theatertechniek">Theatertechniek</pre></foreignObject></g><g id="SUIDresourcegroupnode4" permissions="[]" cMenu="resourceMenu"
                                       class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,158c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V158z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,149.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode4-text" xmlns="http://www.w3.org/1999/xhtml" title="Facility">Facility</pre></foreignObject></g><g id="SUIDresourcedetailnode3" class="resourcedetailnode treenode
                                       abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,128c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0
                                       !                             !                             !                             c0-6.627,5.373-8,12-8h26C848.627,120,854,121.373,854,128L854,128z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,130.5)" xmlns="http://www.w3.org/2000/svg">details</text><a class="incomplete" onmouseover="var thisbb = getAbsoluteBoundingBox($
                                       ('#SUIDresourcedetailnode3')[0]);$('.incomplete-summary').html(&quot;&lt;strong&gt;Incomplete:&lt;/strong&gt;&lt;span class='incomplete-item'&gt;placeholder Engineer&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.incomplete-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-incomplete" transform="translate(844,109)" xmlns="http://www.w3.org/2000/svg"><polygon
                                       style="fill:#FFF000" points="8.999,2.787 11.41,0 12.104,3.621 15.589,2.411 14.38,5.893 18,6.59 15.211,8.999 18,11.41 14.38,12.104 15.589,15.589 12.104,14.38 11.41,18 8.999,15.211 6.588,18 5.893,14.38 2.411,15.589 3.621,12.104 0,11.41 2.787,8.999 0,6.59 3.621,5.893 2.411,2.411 5.893,3.621 6.588,0" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.25" y="11.6" width="1.8" height="1.8" xmlns="http://www.w3.org/2000/svg"></rect><path
                                       d="M6.425,6.318c0.144-0.347,0.341-0.649,0.599-0.905C7.279,5.158,7.588,4.959,7.95,4.815C8.312,4.672,8.715,4.6,9.163,4.6c0.578,0,1.06,0.076,1.446,0.227c0.384,0.15,0.692,0.339,0.934,0.562c0.232,0.226,0.402,0.466,0.505,0.727C12.15,6.376,12.2,6.617,12.2,6.843c0,0.371-0.052,0.676-0.152,0.916c-0.103,0.24-0.229,0.445-0.379,0.617c-0.147,0.17-0.315,0.314-0.5,0.434c-0.185,0.121-0.354,0.24-0.519,0.361c-0.164,0.119-0.309,0.257-0.434,0.412c-0.127,0.153-0.208,0.347-0.238,0.578V10.6H8.
                                       333v-0.521c0.025-0.332,0.092-0.611,0.202-0.837c0.109-0.224,0.238-0.415,0.383-0.573c0.148-0.158,0.301-0.295,0.465-0.412C9.545,8.142,9.693,8.025,9.834,7.91c0.139-0.117,0.25-0.245,0.334-0.386c0.086-0.139,0.124-0.312,0.116-0.521c0-0.355-0.093-0.619-0.274-0.789S9.573,5.958,9.249,5.958c-0.22,0-0.409,0.041-0.567,0.122c-0.158,0.082-0.29,0.19-0.391,0.326C8.189,6.541,8.114,6.699,8.066,6.881c-0.05,0.183-0.073,0.378-0.073,0.587H6.2C6.208,7.05,6.283,6.667,6.425,6.318z"
                                       xmlns="http://www.w3.org/2000/svg"></path></g></a></g><g id="SUIDresourcedetailnode5" class="resourcedetailnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,157c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0
                                       !                             !                             !                             c0-6.627,5.373-8,12-8h26C848.627,149,854,150.373,854,157L854,157z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,159.5)" xmlns="http://www.w3.org/2000/svg">details</text></g><g id="NPEvent164" cMenu="eventMenu"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;"
                                       d="M534,214c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V214z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,205.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent164-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello2">Othello2</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent164')[0]);$
                                       ('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;The schedule of Othello2 exceeds the day boundaries&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello2 is already used by event(s) Othello3.&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello2 is already used by event(s) Othello3.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent164-alert" transform="translate(524,193)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000"
                                       points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756"
                                       width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent171" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4
                                       SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,410c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V410z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,401.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent171-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello3">Othello3</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent171')[0]);$
                                       ('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;Stekkerdoos in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;
                                       &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent171-alert" transform="translate(524,389)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000"
                                       points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756"
                                       width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="SUIDfetch7" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,0)" xmlns="http://www.w3.org/2000/svg"><path d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH
                                       MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></g></g><g id="SUIDdatetimelinenode8" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,17)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,28)" xmlns="http://
                                       www.w3.org/2000/svg">sun 12-9-2010</text></g><g id="SUIDdatetimelinenode9" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,78)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,89)" xmlns="http://www.w3.org/2000/svg">mo 13-9-2010</text></g><g id="NPEvent187" cMenu="eventMenu"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,116c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V116z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,107.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent187-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 1">Macbeth 1</pre></foreignObject></g><g id="NPEvent217" cMenu="eventMenu"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,153c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V153z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,144.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent217-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 1">The Room 1</pre></foreignObject></g><g id="SUIDdatetimelinenode10" class="datetimelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><rect width="300" height="14" transform="translate(266,176)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,187)" xmlns="http://www.w3.org/2000/svg">tue 14-9-2010</text></g><g id="NPEvent233" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><path stroke="none" style="stroke-width:2;" d="M534,251c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V251z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,242.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent233-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 2">The Room 2</pre></foreignObject></g><g id="SUIDdatetimelinenode11" class="datetimelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><rect width="300" height="14" transform="translate(266,274)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,285)" xmlns="http://www.w3.org/2000/svg">wed 15-9-2010</text></g><g id="NPEvent197" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><path stroke="none" style="stroke-width:2;" d="M534,312c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V312z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,303.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent197-text" xmlns="http://www.w3.org/1999/xhtml" title="Hamlet 1">Hamlet 1</pre></foreignObject></g><g id="SUIDdatetimelinenode12" class="datetimelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><rect width="300" height="14" transform="translate(266,335)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,346)" xmlns="http://www.w3.org/2000/svg">thu 16-9-2010</text></g><g id="NPEvent138" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><path stroke="none" style="stroke-width:2;" d="M534,373c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V373z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,364.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent138-text" xmlns="http://www.w3.org/1999/xhtml" title="Ongedecideerd">Ongedecideerd</pre></foreignObject></g><g id="NPEvent191" cMenu="eventMenu"
                                       permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,447c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
                                       !                             !                             c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V447z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,438.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent191-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 2">Macbeth 2</pre></foreignObject></g><g id="SUIDdatetimelinenode13" class="datetimelinenode" xmlns="http://www.w3.org/2000/
                                       svg"><rect width="300" height="14" transform="translate(266,470)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,481)" xmlns="http://www.w3.org/2000/svg">fri 17-9-2010</text></g><g id="SUIDdatetimelinenode14" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,494)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,505)" xmlns="http://www.w3.org/2000/svg">sat
                                       18-9-2010</text></g><g id="SUIDdatetimelinenode15" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,518)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,529)" xmlns="http://www.w3.org/2000/svg">sun 19-9-2010</text></g><g id="SUIDfetch16" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,542)" xmlns="http://www.w3.org/2000/svg"><path
                                       d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></
                                       g></g><g id="NPCompositeEvent201" class="node ancestornode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M120,285c0,6.627-5.373,8-12,8H52c-6.627,0-12-1.373-12-8l0,0
                                       !                             !                             !                             c0-6.627,5.373-8,12-8h56C114.627,277,120,278.373,120,285L120,285z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(52,287.5)" xmlns="http://www.w3.org/2000/svg">Shakespeare</text></g></g></svg></div><ul id="canvasMenu" style="display:none"><li><a
                                       action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;15&quot;].join(&quot;&amp;&quot;)})" permissions="addEvent">Add new event</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;16&quot;].join
                                       (&quot;&amp;&quot;)})" permissions="addEvent">Add new group</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;17&quot;].join(&quot;&amp;&quot;)})" id="addresourcemenuitem" permissions="addResource">Add new resource</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax
                                       ({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;18&quot;].join(&quot;&amp;&quot;)})">Paste</a></li></ul><ul id="eventMenu" style="display:none"><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;19&quot;].join
                                       (&quot;&amp;&quot;)})" permissions="writeEvent">Rename</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;20&quot;].join(&quot;&amp;&quot;)})" permissions="writeEvent">Ungroup</a></li><li><a menu="groupsmenu" onmouseover="setTimeout(function(){$(&quot;:input:visible&quot;).focus()},250)" permissions="writeEvent">Add to group</
                                       a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;21&quot;].join(&quot;&amp;&quot;)})" permissions="deleteEvent">Delete</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;
                                       22&quot;].join(&quot;&amp;&quot;)})" permissions="readEvent">Copy</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;23&quot;].join(&quot;&amp;&quot;)})">Paste</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($
                                       (&quot;#finderlock&quot;)).show();$(&quot;#title&quot;).hide();finders['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;24&quot;].join(&quot;&amp;&quot;)});$(&quot;#finderbasket&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;25&quot;].join(&quot;&amp;&quot;),function(){tickResourcesInBasket()});displayInitialTable();$(&quot;#timelineHeaderInFinder&quot;).hide();$(&quot;#availabilityButton&quot;).show()" permissions="writeResourceMgmt">Add resources</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($(&quot;#finderlock&quot;)).hide();finders['resourceFinder']['finderMode'] =
                                       'manager';finders['resourceFinder'].allowDragging = false;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;26&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#finderSearch&quot;).val(&quot;&quot;);finderQueryChanged('#finderSearch',finders['resourceFinder'],true);event.preventDefault();}})"
                                       permissions="readResourceMgmt">List resources</a></li></ul><ul id="resourceMenu" style="display:none"><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;27&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;28&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="readResourceMgmt">Info</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($(&quot;#finderlock&quot;)).show();$(&quot;#title&quot;).hide();finders
                                       ['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;29&quot;].join(&quot;&amp;&quot;)});$(&quot;#finderbasket&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;30&quot;].join(&quot;&amp;&quot;),function()
                                       {tickResourcesInBasket()});displayInitialTable();$(&quot;#timelineHeaderInFinder&quot;).hide();$(&quot;#availabilityButton&quot;).show()" permissions="writeResourceMgmt">Add resource</a></li><li><a menu="edit-submenu" permissions="writeResourceMgmt" id="edit-submenu">Edit</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;
                                       31&quot;].join(&quot;&amp;&quot;)})" permissions="writeResourceMgmt">Copy</a></li><li><a class="pastemenuitem disabled" isDisable="true" permissions="writeResourceMgmt" action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;32&quot;].join(&quot;&amp;&quot;)})">Paste</a></li><li><a permissions="deleteResourceMgmt" action="$.getScript(&quot;/
                                       NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;33&quot;].join(&quot;&amp;&quot;))">Delete</a></li><li><a menu="" permissions="writeResourceMgmt" id="promote-submenu">Promote to</a></li><li><a menu="" permissions="writeResourceMgmt" id="degrade-submenu">Degrade to</a></li></ul><ul id="groupsmenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-
                                       Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><input name="34" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;35&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax
                                       ({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;36&quot;].join(&quot;&amp;&quot;)});$(&quot;.menuDiv&quot;).remove()}}); return false}; return true" name="37" onfocus="$(this).autocomplete({&quot;select&quot;:function(event,ui){$(this).parent().find(&quot;:input:hidden&quot;).val(ui.item.id)},&quot;source&quot;:function(request,response){$.getJSON
                                       (&quot;/NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;38&quot;,&quot;39=&quot;+encodeURIComponent(request.term)].join(&quot;&amp;&quot;),function(){response(arguments[0])})}});$(this).parent().find(&quot;:input:hidden&quot;).val(&quot;&quot;)" type="text" class="text"/></form></a></ul><input id="datepicker" type="hidden" class="hidden"/><input id="fetchmoredatepicker" type="hidden" class="hidden"/><div
                                       id="renamedialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><fieldset><input onblur="setTimeout(function(){$(&quot;#renamedialog&quot;).hide()},300)" onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;46&quot;,$
                                       (this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;47&quot;].join(&quot;&amp;&quot;)});$(&quot;#renamedialog&quot;).hide()}}); return false}; return true" name="48" type="text" class="text"/><button onclick="$.ajax
                                       ({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;49&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;50&quot;].join
                                       (&quot;&amp;&quot;)});$(&quot;#renamedialog&quot;).hide()}})" type="button" class="button">ok</button><button onclick="$(&quot;#renamedialog&quot;).hide()" type="button" class="button">cancel</button></fieldset></form></div><div id="changeplaceholdernumberdialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><fieldset><input onkeypress="if((window.event ?
                                       window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;51&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;52&quot;].join(&quot;&amp;&quot;)});$(&quot;#changeplaceholdernumberdialog&quot;).hide()}}); return false}; return true" name="53" type="text" class="text"/><button onclick="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;54&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join
                                       (&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;55&quot;].join(&quot;&amp;&quot;)});$(&quot;#changeplaceholdernumberdialog&quot;).hide()}})" type="button" class="button">ok</button><button onclick="$(&quot;#changeplaceholdernumberdialog&quot;).hide()" type="button" class="button">cancel</
                                       button></fieldset></form></div><ul id="addtoset-submenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><input name="67" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;68&quot;,$
                                       (this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;body&quot;).append(&quot;&lt;div class=&quot;loading&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/images/wait.gif&quot;/&gt;&lt;/div&gt;&quot;);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;69&quot;].join




                           z-index 2
                                       (&quot;&amp;&quot;),&quot;complete&quot;:function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;70&quot;].join(&quot;&amp;&quot;)});$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/
                                       NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;71&quot;].join(&quot;&amp;&quot;)});$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;72&quot;].join(&quot;&amp;&quot;)});$(&quot;#resourcefinderPrice&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;73&quot;].join(&quot;&amp;&quot;));$(&quot;#addtoset-submenu&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;74&quot;].join(&quot;&amp;&quot;));$(&quot;body&quot;).children(&quot;.loading&quot;).remove();$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;75&quot;].join(&quot;&amp;&quot;)})}});$(&quot;.menuDiv&quot;).remove()}}); return false}; return true" name="76" onfocus="$(this).autocomplete({&quot;select&quot;:function(event,ui){$(this).parent().find(&quot;:input:hidden&quot;).val(ui.item.id)},&quot;source&quot;:function(request,response){$.getJSON(&quot;/NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;
                                       77&quot;,&quot;78=&quot;+encodeURIComponent(request.term)].join(&quot;&amp;&quot;),function(){response(arguments[0])})}});$(this).parent().find(&quot;:input:hidden&quot;).val(&quot;&quot;)" type="text" class="text"/></form></a></ul><ul id="finderMenu" style="display:none"><li><a action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;99&quot;].join
                                       (&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;100&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="[&quot;readResource&quot;]">Info</a></li><li><a
                                       permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;101&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;102&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$
                                       (&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;103&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new resource</a></li><li><a permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/
                                       NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;104&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;105&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;106&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new financial resource</a></li><li><a permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-
                                       Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;107&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;body&quot;).append(&quot;&lt;div class=&quot;loading&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/images/wait.gif&quot;/&gt;&lt;/div&gt;&quot;);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;108&quot;].join
                                       (&quot;&amp;&quot;),&quot;complete&quot;:function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeN




                           z-index 3
                              ...




Fr day 17 September 2010
JQuery-SVG
                    • jQuery load for SVG content
                           • Load new content in SVG canvas
                           • Add content at end of SVG Canvas

                    • + add content to existing SVG element
                           • Control "z-index" by adding to SVG
                             groups
                           • Not yet present on squeaksource / jQuery
                             plugin


Friday 17 September 2010
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN
NeXTPLAN

Weitere ähnliche Inhalte

Ähnlich wie NeXTPLAN

JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Stefan Adolf
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An IntroductionNirvanic Labs
 
JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017ElifTech
 
Go With The Reflow
Go With The ReflowGo With The Reflow
Go With The Reflowlsimon
 
React && React Native workshop
React && React Native workshopReact && React Native workshop
React && React Native workshopStacy Goh
 
React Native: Introduction
React Native: IntroductionReact Native: Introduction
React Native: IntroductionInnerFood
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Nodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to heroNodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to heroNicola Del Gobbo
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JSbrendankowitz
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraC4Media
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsFabian Jakobs
 
appborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-systemappborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-systemendian7000
 

Ähnlich wie NeXTPLAN (20)

JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An Introduction
 
JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017
 
Node azure
Node azureNode azure
Node azure
 
Go With The Reflow
Go With The ReflowGo With The Reflow
Go With The Reflow
 
React && React Native workshop
React && React Native workshopReact && React Native workshop
React && React Native workshop
 
handout-05b
handout-05bhandout-05b
handout-05b
 
handout-05b
handout-05bhandout-05b
handout-05b
 
React Native: Introduction
React Native: IntroductionReact Native: Introduction
React Native: Introduction
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Nodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to heroNodejs Native Add-Ons from zero to hero
Nodejs Native Add-Ons from zero to hero
 
Yavorsky
YavorskyYavorsky
Yavorsky
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JS
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
appborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-systemappborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-system
 

NeXTPLAN

  • 1. NeXTPLAN* Enterprise software that rocks! with Seaside & Smalltalk Johan Brichau - johan@inceptive.be Friday 17 September 2010
  • 2. NeXTPLAN is... • A collaborative resource planning tool for event organizers of all sizes. • Developed for and with major player of Belgian cultural scene (Vooruit, Gent). • Features: Event planning, resource planning & management, contact management, retro planning, billing, reporting. Friday 17 September 2010
  • 5. In this talk.... • Smalltalk and Seaside are an impressive platform to create highly dynamic web applications that blur the traditional distinction with desktop applications • Some details: • Local AJAX updates • OODBs • SVG + AJAX in Seaside • Testing, porting to Gemstone Friday 17 September 2010
  • 6. Demo 1 • [demo to show component interactions in calendar: grouped events & bubbles, changing names, decoration] Friday 17 September 2010
  • 10. Ajax Updates Architecture • Every operation eventually invokes the update rendering • Update rendering • Component re-rendering • Ajax-jQuery replace operation Friday 17 September 2010
  • 11. Global Ajax Update Friday 17 September 2010
  • 12. Global Ajax Update Friday 17 September 2010
  • 13. Global Ajax Update scriptToUpdatebodyOn: html ^ (html jQuery: #cells) load: [:r | self renderCellsOn: r] + Easy and crisp + Universally applicable - Re-renders too much (too long!) - Wastes in-place editing advantage - Most of the time updates are local Friday 17 September 2010
  • 14. Local updates Friday 17 September 2010
  • 15. Local updates Friday 17 September 2010
  • 16. Local updates Friday 17 September 2010
  • 17. Local updates Friday 17 September 2010
  • 18. Local updates Updates of other users (via database changes)! Friday 17 September 2010
  • 19. Pitfalls • Instance variable values • Capture concurrent changes to calendar • Client side behavior (Javascript) • Invoke again or not? • For example: • Drag & drop of cells • Context menu on cells • Dynamic calendar extension on page scroll Friday 17 September 2010
  • 20. Seaside Design Pattern? UpdateableComponent htmlId renderContentOn: Complete render renderInternalOn: Internal render needsRefresh Wants to render? scriptToUpdateOn: Script to render Friday 17 September 2010
  • 21. Local updates CalendarComponent>>updateScriptOn: canvas ^ canvas jQuery ajax script: [:s | self cells do: [:c| c needsRefresh ifTrue:[ s << (c updateScriptOn: s)]]] Cell>>updateScriptOn: canvas ^(canvas jQuery id: self htmlId) load:[:r| self renderInternalOn: r] Friday 17 September 2010
  • 22. Local updates CalendarComponent>>updateScriptOn: canvas ^ canvas jQuery ajax script: [:s | self childrendo: [:c| cells c needsRefresh ifTrue:[ s << (c updateScriptOn: s)]]] Cell>>updateScriptOn: canvas ^(canvas jQuery id: self htmlId) load:[:r| self renderInternalOn: r] Friday 17 September 2010
  • 23. Local updates CalendarComponent>>updateScriptOn: canvas ^ canvas jQuery ajax script: [:s | self childrendo: [:c| cells c needsRefresh ifTrue:[ s << (c updateScriptOn: s)]]] Cell>>updateScriptOn: canvas ^(canvas jQuery id: self htmlId) load:[:r| self renderInternalOn: r] replaceWith: renderContentOn: Friday 17 September 2010
  • 24. Local updates • Own session changes • True object-based change propagation • Concurrent session changes • Manual handling Friday 17 September 2010
  • 25. SVG in Seaside • SeasideDynamicSVG package • SVG canvas & brushes • SVG + jQuery • SVG + AJAX • Dynamic load of svg content • Problem: Painterʼs algorithm for "z-index" • Solution: svgLoad Friday 17 September 2010
  • 26. Demo 2 • [show Tree view animations driven by Ajax updates] Friday 17 September 2010
  • 27. JQuery svgLoad <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>NextPlan Structure Editor 0.24</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><meta http-equiv="Content-Script-Type" content="text/javascript"/><link rel="stylesheet" type="text/css" href="/files/WADevelopmentFiles/development.css"/><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/main.css"/><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/calendar.css"/><script type="text/javascript" src="./javascripts/jQuery.js"></script><script type="text/javascript" src="./javascripts/jQueryUi.js"></script><script type="text/javascript" src="./javascripts/underscore.js"></script><script type="text/javascript" src="./javascripts/calendar-scripts.js"></script><script type="text/javascript" src="./javascripts/jquery.viewportforframe.js"></script><script type="text/javascript" src="./ javascripts/jquery.tablesorter.bugfixed.js"></script><script type="text/javascript" src="./javascripts/resizable-tables.js"></script><script type="text/javascript" src="./javascripts/jquery.rightClick.js"></script><script type="text/javascript" src="./javascripts/resourcefinder.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.masked.js"></script><script type="text/javascript" src="./javascripts/jquery.maskedinput-1.2.2.min.js"></script><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/se.css"/><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/mbMenusvgPatched.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jqueryhoverintent.js"></script><script type="text/javascript" src="./javascripts/keynavigation.js"></script><script type="text/ javascript" src="./javascripts/textselection.js"></script><script type="text/javascript" src="./javascripts/jquery.svg.js"></script><script type="text/javascript" src="./javascripts/jquery.svgdom.js"></script><script type="text/javascript" src="./javascripts/jquery.svganim.js"></script><script type="text/javascript" src="./javascripts/jquery.svgpatch.js"></script><script type="text/javascript" src="./javascripts/se-scripts.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/np-common.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jeditable.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDeploymentLibrary/jquerymetadata.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></ script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script></head><body id="calendar-tab" oncontextmenu="return false;" onload="onLoad()"><div id="branding"><h1><a title="Go to the homepage" href="/">NextPlan</a></h1><ul><li id="skip-to-main"><a href="#nav-main">Skip to main navigation</a></li><li id="skip-to-tools"><a href="#nav-tools">Skip to tools</a></li><li id="skip-to-user"><a href="#nav-user">Skip to user panel</a></li></ul></div><div id="treeeditor" style="position:relative;margin:0 auto;width:100%;height:100%;min-height:100%;"><div id="menucontainer"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100px" height="80px"><g id="menu_background"><path d="M86,29.5c0,6.627-5.373,12-12,12H22c-6.627,0-12-5.373-12-12v-16c0-6.627,5.373-12,12-12h52c6.627,0,12,5.373,12,12V29.5z"></path></ g><g id="clock_icon" class="active" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;7&quot;].join(&quot;&amp;&quot;)})" transform="translate(-49,-5)"><rect x="66" y="11.5" style="opacity:0" width="27" height="27"></rect><path d="M79.5,12.5C72.597,12.5,67,18.097,67,25s5.597,12.5,12.5,12.5S92,31.903,92,25S86.403,12.5,79.5,12.5z M79.5,34.5c-5.246,0-9.5-4.255-9.5-9.5c0-5.246,4.254-9.5,9.5-9.5c5.245,0,9.5,4.254,9.5,9.5C89,30.245,84.745,34.5,79.5,34.5z"></path><path d="M84.801,27.404c0.521,0.365,0.561,1.211,0.085,1.891l0,0c-0.476,0.678-1.284,0.932-1.806,0.566l-4.662-3.265c-0.522-0.366-0.561-1.212-0.086-1.891l0,0c0.477-0.679,1.285-0.933,1.806-0.567L84.801,27.404z"></path><path d="M81,25.346c0,0.637-0.672,1.154-1.5,1.154l0,0c-0.828,0-1.5-0.518-1.5-1.154v-6.691c0-0.638,0.672-1.154,1.5-1.154l0,0c0.828,0,1.5,0.517,1.5,1.154V25.346z"></path></g><g id="tree_icon" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;8&quot;].join(&quot;&amp;&quot;)})" transform="translate(50,7)"><rect x="0" y="-3.5" style="opacity:0" width="27" height="27"></rect><rect x="6" y="21.5" width="9" height="1"></rect><rect x="6" y="14.5" width="9" height="1"></rect><rect x="6" y="7.5" width="9" height="1"></rect><rect x="6" y="4.5" width="1" height="20"></rect><path d="M15,19.5v5h11v-5"></path><path d="M15,12.5v5h11v-5"></path><path d="M15,5.5v5h11v-5"></path><path d="M1,-0.5v5h11v-5"></path></g><g id="draft" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/ NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;9&quot;].join(&quot;&amp;&quot;)})" transform="translate(25,60)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(6,8.8555)">DRAFT</text></g><g id="undo" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/ NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;10&quot;].join(&quot;&amp;&quot;)})" transform="translate(10,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">UNDO</text></g><g id="redo" onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/ NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;11&quot;].join(&quot;&amp;&quot;)})" transform="translate(50,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">REDO</text></g></svg></div><div id="svgcontainer" class="svgcontainer" cMenu="canvasMenu" permissions="[&quot;addEvent&quot;,&quot;addResource&quot;]"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200px" height="642px"><g id="lines" xmlns="http://www.w3.org/2000/svg"><line id="lineNPCompositeEvent173-NPEvent144" x1="183" y1="313" x2="401" y2="54" style="stroke-width:2" class="SUIDdatetimenode1line NPResourceInstance85line SUIDnodelist6line SUIDresourcegroupnode2line SUIDresourcedetailnode3line SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPCompositeEvent173line NPEvent144line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent164" x1="183" y1="313" x2="401" y2="213" style="stroke-width:2" class="NPCompositeEvent173line NPEvent164line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent171" x1="183" y1="313" x2="401" y2="409" style="stroke-width:2" class="NPCompositeEvent173line NPEvent171line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-SUIDdatetimenode1" x1="529" y1="54" x2="651" y2="54" style="stroke-width:2" class="permanentselected NPCompositeEvent173line NPEvent144line SUIDdatetimenode1line nodeline eventline datetimenodeline" xmlns="http://www.w3.org/2000/svg"></line><g id="lineNPEvent144-NPResourceInstance85" class="permanentselected NPCompositeEvent173line NPEvent144line NPResourceInstance85line nodeline eventline locationnodeline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-NPResourceInstance85-hor" x1="621" y1="91" x2="651" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-NPResourceInstance85-vert" x1="621" y1="54" x2="621" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><g id="lineNPEvent144-SUIDnodelist6" class="permanentselected NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPEvent144line SUIDnodelist6line nodeline eventline nodelistline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-SUIDnodelist6-hor" x1="621" y1="128" x2="646" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144- SUIDnodelist6-vert" x1="621" y1="54" x2="621" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><line id="lineSUIDresourcegroupnode2-SUIDresourcedetailnode3" x1="779" y1="128" x2="809" y2="128" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></ line><line id="lineSUIDresourcegroupnode4-SUIDresourcedetailnode5" x1="779" y1="157" x2="809" y2="157" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode4line SUIDresourcedetailnode5line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></line></g><g id="nodes" xmlns="http://www.w3.org/2000/svg"><g id="NPCompositeEvent173" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M188,314c0,6.627-5.373,12-12,12H62c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V314z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(62,305.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPCompositeEvent173-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello">Othello</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($ ('#NPCompositeEvent173')[0]);$('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;The schedule of Othello2 exceeds the day boundaries&lt;/span&gt; &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello2 is already used by event(s) Othello3.&lt;/span&gt; &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello2 is already used by event(s) Othello3.&lt;/span&gt; &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello3 is already used by event(s) Othello2.&lt;/span&gt; &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPCompositeEvent173-alert" transform="translate(178,293)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000" points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756" width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent144" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 z-index 1 SUIDresourcedetailnode5 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,55c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent144-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello 1">Othello 1</pre></foreignObject></g><g id="SUIDdatetimenode1" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" cMenu="resourceMenu" class="datetimenode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,55c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDdatetimenode1-text" xmlns="http://www.w3.org/1999/xhtml" title="12-9-2010">12-9-2010</pre></foreignObject></g><g id="NPResourceInstance85" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;]" cMenu="resourceMenu" class="locationnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,92c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V92z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,83.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPResourceInstance85-text" xmlns="http://www.w3.org/1999/xhtml" title="Theaterzaal">Theaterzaal</pre></foreignObject><g style="display:none" id="NPResourceInstance85-arrow" xmlns="http://www.w3.org/ 2000/svg"><g class="arrow" xmlns="http://www.w3.org/2000/svg"><path transform="translate(764,87)" d="M 10 0 L 5 8 L 0 0 Z" xmlns="http://www.w3.org/2000/svg"></path></g></g></g><g id="SUIDresourcegroupnode2" permissions="[]" cMenu="resourceMenu" class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,129c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V129z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,120.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode2-text" xmlns="http://www.w3.org/1999/xhtml" title="Theatertechniek">Theatertechniek</pre></foreignObject></g><g id="SUIDresourcegroupnode4" permissions="[]" cMenu="resourceMenu" class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,158c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V158z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,149.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode4-text" xmlns="http://www.w3.org/1999/xhtml" title="Facility">Facility</pre></foreignObject></g><g id="SUIDresourcedetailnode3" class="resourcedetailnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,128c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0 ! ! ! c0-6.627,5.373-8,12-8h26C848.627,120,854,121.373,854,128L854,128z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,130.5)" xmlns="http://www.w3.org/2000/svg">details</text><a class="incomplete" onmouseover="var thisbb = getAbsoluteBoundingBox($ ('#SUIDresourcedetailnode3')[0]);$('.incomplete-summary').html(&quot;&lt;strong&gt;Incomplete:&lt;/strong&gt;&lt;span class='incomplete-item'&gt;placeholder Engineer&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.incomplete-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-incomplete" transform="translate(844,109)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000" points="8.999,2.787 11.41,0 12.104,3.621 15.589,2.411 14.38,5.893 18,6.59 15.211,8.999 18,11.41 14.38,12.104 15.589,15.589 12.104,14.38 11.41,18 8.999,15.211 6.588,18 5.893,14.38 2.411,15.589 3.621,12.104 0,11.41 2.787,8.999 0,6.59 3.621,5.893 2.411,2.411 5.893,3.621 6.588,0" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.25" y="11.6" width="1.8" height="1.8" xmlns="http://www.w3.org/2000/svg"></rect><path d="M6.425,6.318c0.144-0.347,0.341-0.649,0.599-0.905C7.279,5.158,7.588,4.959,7.95,4.815C8.312,4.672,8.715,4.6,9.163,4.6c0.578,0,1.06,0.076,1.446,0.227c0.384,0.15,0.692,0.339,0.934,0.562c0.232,0.226,0.402,0.466,0.505,0.727C12.15,6.376,12.2,6.617,12.2,6.843c0,0.371-0.052,0.676-0.152,0.916c-0.103,0.24-0.229,0.445-0.379,0.617c-0.147,0.17-0.315,0.314-0.5,0.434c-0.185,0.121-0.354,0.24-0.519,0.361c-0.164,0.119-0.309,0.257-0.434,0.412c-0.127,0.153-0.208,0.347-0.238,0.578V10.6H8. 333v-0.521c0.025-0.332,0.092-0.611,0.202-0.837c0.109-0.224,0.238-0.415,0.383-0.573c0.148-0.158,0.301-0.295,0.465-0.412C9.545,8.142,9.693,8.025,9.834,7.91c0.139-0.117,0.25-0.245,0.334-0.386c0.086-0.139,0.124-0.312,0.116-0.521c0-0.355-0.093-0.619-0.274-0.789S9.573,5.958,9.249,5.958c-0.22,0-0.409,0.041-0.567,0.122c-0.158,0.082-0.29,0.19-0.391,0.326C8.189,6.541,8.114,6.699,8.066,6.881c-0.05,0.183-0.073,0.378-0.073,0.587H6.2C6.208,7.05,6.283,6.667,6.425,6.318z" xmlns="http://www.w3.org/2000/svg"></path></g></a></g><g id="SUIDresourcedetailnode5" class="resourcedetailnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,157c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0 ! ! ! c0-6.627,5.373-8,12-8h26C848.627,149,854,150.373,854,157L854,157z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,159.5)" xmlns="http://www.w3.org/2000/svg">details</text></g><g id="NPEvent164" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,214c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V214z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,205.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent164-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello2">Othello2</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent164')[0]);$ ('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;The schedule of Othello2 exceeds the day boundaries&lt;/span&gt; &lt;span class='conflict-item'&gt;Stekkerdoos in event Othello2 is already used by event(s) Othello3.&lt;/span&gt; &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello2 is already used by event(s) Othello3.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent164-alert" transform="translate(524,193)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000" points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756" width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent171" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,410c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V410z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,401.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent171-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello3">Othello3</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent171')[0]);$ ('.conflict-summary').html(&quot;&lt;strong&gt;Conflicts:&lt;/strong&gt;&lt;span class='conflict-item'&gt;Stekkerdoos in event Othello3 is already used by event(s) Othello2.&lt;/span&gt; &lt;span class='conflict-item'&gt;2KW Fresnell in event Othello3 is already used by event(s) Othello2.&lt;/span&gt;&lt;span class='tip'&gt;&lt;/span&gt;&quot;).css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent171-alert" transform="translate(524,389)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000" points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756" width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="SUIDfetch7" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,0)" xmlns="http://www.w3.org/2000/svg"><path d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></g></g><g id="SUIDdatetimelinenode8" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,17)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,28)" xmlns="http:// www.w3.org/2000/svg">sun 12-9-2010</text></g><g id="SUIDdatetimelinenode9" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,78)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,89)" xmlns="http://www.w3.org/2000/svg">mo 13-9-2010</text></g><g id="NPEvent187" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,116c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V116z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,107.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent187-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 1">Macbeth 1</pre></foreignObject></g><g id="NPEvent217" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,153c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V153z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,144.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent217-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 1">The Room 1</pre></foreignObject></g><g id="SUIDdatetimelinenode10" class="datetimelinenode" xmlns="http://www.w3.org/2000/ svg"><rect width="300" height="14" transform="translate(266,176)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,187)" xmlns="http://www.w3.org/2000/svg">tue 14-9-2010</text></g><g id="NPEvent233" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/ svg"><path stroke="none" style="stroke-width:2;" d="M534,251c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V251z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,242.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent233-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 2">The Room 2</pre></foreignObject></g><g id="SUIDdatetimelinenode11" class="datetimelinenode" xmlns="http://www.w3.org/2000/ svg"><rect width="300" height="14" transform="translate(266,274)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,285)" xmlns="http://www.w3.org/2000/svg">wed 15-9-2010</text></g><g id="NPEvent197" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/ svg"><path stroke="none" style="stroke-width:2;" d="M534,312c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V312z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,303.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent197-text" xmlns="http://www.w3.org/1999/xhtml" title="Hamlet 1">Hamlet 1</pre></foreignObject></g><g id="SUIDdatetimelinenode12" class="datetimelinenode" xmlns="http://www.w3.org/2000/ svg"><rect width="300" height="14" transform="translate(266,335)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,346)" xmlns="http://www.w3.org/2000/svg">thu 16-9-2010</text></g><g id="NPEvent138" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/ svg"><path stroke="none" style="stroke-width:2;" d="M534,373c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V373z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,364.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent138-text" xmlns="http://www.w3.org/1999/xhtml" title="Ongedecideerd">Ongedecideerd</pre></foreignObject></g><g id="NPEvent191" cMenu="eventMenu" permissions="[&quot;readEvent&quot;,&quot;writeEvent&quot;,&quot;deleteEvent&quot;,&quot;readResourceMgmt&quot;,&quot;writeResourceMgmt&quot;,&quot;deleteResourceMgmt&quot;]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,447c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1 ! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V447z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,438.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent191-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 2">Macbeth 2</pre></foreignObject></g><g id="SUIDdatetimelinenode13" class="datetimelinenode" xmlns="http://www.w3.org/2000/ svg"><rect width="300" height="14" transform="translate(266,470)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,481)" xmlns="http://www.w3.org/2000/svg">fri 17-9-2010</text></g><g id="SUIDdatetimelinenode14" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,494)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,505)" xmlns="http://www.w3.org/2000/svg">sat 18-9-2010</text></g><g id="SUIDdatetimelinenode15" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,518)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,529)" xmlns="http://www.w3.org/2000/svg">sun 19-9-2010</text></g><g id="SUIDfetch16" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,542)" xmlns="http://www.w3.org/2000/svg"><path d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></ g></g><g id="NPCompositeEvent201" class="node ancestornode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M120,285c0,6.627-5.373,8-12,8H52c-6.627,0-12-1.373-12-8l0,0 ! ! ! c0-6.627,5.373-8,12-8h56C114.627,277,120,278.373,120,285L120,285z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(52,287.5)" xmlns="http://www.w3.org/2000/svg">Shakespeare</text></g></g></svg></div><ul id="canvasMenu" style="display:none"><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;15&quot;].join(&quot;&amp;&quot;)})" permissions="addEvent">Add new event</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;16&quot;].join (&quot;&amp;&quot;)})" permissions="addEvent">Add new group</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;17&quot;].join(&quot;&amp;&quot;)})" id="addresourcemenuitem" permissions="addResource">Add new resource</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax ({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;18&quot;].join(&quot;&amp;&quot;)})">Paste</a></li></ul><ul id="eventMenu" style="display:none"><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;19&quot;].join (&quot;&amp;&quot;)})" permissions="writeEvent">Rename</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;20&quot;].join(&quot;&amp;&quot;)})" permissions="writeEvent">Ungroup</a></li><li><a menu="groupsmenu" onmouseover="setTimeout(function(){$(&quot;:input:visible&quot;).focus()},250)" permissions="writeEvent">Add to group</ a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;21&quot;].join(&quot;&amp;&quot;)})" permissions="deleteEvent">Delete</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot; 22&quot;].join(&quot;&amp;&quot;)})" permissions="readEvent">Copy</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;23&quot;].join(&quot;&amp;&quot;)})">Paste</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($ (&quot;#finderlock&quot;)).show();$(&quot;#title&quot;).hide();finders['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;24&quot;].join(&quot;&amp;&quot;)});$(&quot;#finderbasket&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;25&quot;].join(&quot;&amp;&quot;),function(){tickResourcesInBasket()});displayInitialTable();$(&quot;#timelineHeaderInFinder&quot;).hide();$(&quot;#availabilityButton&quot;).show()" permissions="writeResourceMgmt">Add resources</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($(&quot;#finderlock&quot;)).hide();finders['resourceFinder']['finderMode'] = 'manager';finders['resourceFinder'].allowDragging = false;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;26&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#finderSearch&quot;).val(&quot;&quot;);finderQueryChanged('#finderSearch',finders['resourceFinder'],true);event.preventDefault();}})" permissions="readResourceMgmt">List resources</a></li></ul><ul id="resourceMenu" style="display:none"><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;27&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;28&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="readResourceMgmt">Info</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$(&quot;#dropbox&quot;).add($(&quot;#finderlock&quot;)).show();$(&quot;#title&quot;).hide();finders ['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;29&quot;].join(&quot;&amp;&quot;)});$(&quot;#finderbasket&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;30&quot;].join(&quot;&amp;&quot;),function() {tickResourcesInBasket()});displayInitialTable();$(&quot;#timelineHeaderInFinder&quot;).hide();$(&quot;#availabilityButton&quot;).show()" permissions="writeResourceMgmt">Add resource</a></li><li><a menu="edit-submenu" permissions="writeResourceMgmt" id="edit-submenu">Edit</a></li><li><a action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot; 31&quot;].join(&quot;&amp;&quot;)})" permissions="writeResourceMgmt">Copy</a></li><li><a class="pastemenuitem disabled" isDisable="true" permissions="writeResourceMgmt" action="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;32&quot;].join(&quot;&amp;&quot;)})">Paste</a></li><li><a permissions="deleteResourceMgmt" action="$.getScript(&quot;/ NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;33&quot;].join(&quot;&amp;&quot;))">Delete</a></li><li><a menu="" permissions="writeResourceMgmt" id="promote-submenu">Promote to</a></li><li><a menu="" permissions="writeResourceMgmt" id="degrade-submenu">Degrade to</a></li></ul><ul id="groupsmenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j- Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><input name="34" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;35&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax ({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;36&quot;].join(&quot;&amp;&quot;)});$(&quot;.menuDiv&quot;).remove()}}); return false}; return true" name="37" onfocus="$(this).autocomplete({&quot;select&quot;:function(event,ui){$(this).parent().find(&quot;:input:hidden&quot;).val(ui.item.id)},&quot;source&quot;:function(request,response){$.getJSON (&quot;/NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;38&quot;,&quot;39=&quot;+encodeURIComponent(request.term)].join(&quot;&amp;&quot;),function(){response(arguments[0])})}});$(this).parent().find(&quot;:input:hidden&quot;).val(&quot;&quot;)" type="text" class="text"/></form></a></ul><input id="datepicker" type="hidden" class="hidden"/><input id="fetchmoredatepicker" type="hidden" class="hidden"/><div id="renamedialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><fieldset><input onblur="setTimeout(function(){$(&quot;#renamedialog&quot;).hide()},300)" onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;46&quot;,$ (this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;47&quot;].join(&quot;&amp;&quot;)});$(&quot;#renamedialog&quot;).hide()}}); return false}; return true" name="48" type="text" class="text"/><button onclick="$.ajax ({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;49&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;50&quot;].join (&quot;&amp;&quot;)});$(&quot;#renamedialog&quot;).hide()}})" type="button" class="button">ok</button><button onclick="$(&quot;#renamedialog&quot;).hide()" type="button" class="button">cancel</button></fieldset></form></div><div id="changeplaceholdernumberdialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><fieldset><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;51&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;52&quot;].join(&quot;&amp;&quot;)});$(&quot;#changeplaceholdernumberdialog&quot;).hide()}}); return false}; return true" name="53" type="text" class="text"/><button onclick="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;54&quot;,$(this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join (&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;55&quot;].join(&quot;&amp;&quot;)});$(&quot;#changeplaceholdernumberdialog&quot;).hide()}})" type="button" class="button">ok</button><button onclick="$(&quot;#changeplaceholdernumberdialog&quot;).hide()" type="button" class="button">cancel</ button></fieldset></form></div><ul id="addtoset-submenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&amp;_k=RPZesCNB2JeNsKlE"><input name="67" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;68&quot;,$ (this).closest(&quot;form&quot;).find(&quot;:input&quot;).serialize()].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;body&quot;).append(&quot;&lt;div class=&quot;loading&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/images/wait.gif&quot;/&gt;&lt;/div&gt;&quot;);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;69&quot;].join z-index 2 (&quot;&amp;&quot;),&quot;complete&quot;:function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;70&quot;].join(&quot;&amp;&quot;)});$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/ NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;71&quot;].join(&quot;&amp;&quot;)});$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;72&quot;].join(&quot;&amp;&quot;)});$(&quot;#resourcefinderPrice&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;73&quot;].join(&quot;&amp;&quot;));$(&quot;#addtoset-submenu&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;74&quot;].join(&quot;&amp;&quot;));$(&quot;body&quot;).children(&quot;.loading&quot;).remove();$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;75&quot;].join(&quot;&amp;&quot;)})}});$(&quot;.menuDiv&quot;).remove()}}); return false}; return true" name="76" onfocus="$(this).autocomplete({&quot;select&quot;:function(event,ui){$(this).parent().find(&quot;:input:hidden&quot;).val(ui.item.id)},&quot;source&quot;:function(request,response){$.getJSON(&quot;/NextPlan&quot;+&quot;?&quot;+[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot; 77&quot;,&quot;78=&quot;+encodeURIComponent(request.term)].join(&quot;&amp;&quot;),function(){response(arguments[0])})}});$(this).parent().find(&quot;:input:hidden&quot;).val(&quot;&quot;)" type="text" class="text"/></form></a></ul><ul id="finderMenu" style="display:none"><li><a action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;99&quot;].join (&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;100&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="[&quot;readResource&quot;]">Info</a></li><li><a permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;101&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;102&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$ (&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;103&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new resource</a></li><li><a permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/ NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;104&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;105&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;#resourceInspector&quot;).load(&quot;/NextPlan&quot;,[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;106&quot;].join(&quot;&amp;&quot;),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new financial resource</a></li><li><a permissions="[&quot;unlocked&quot;,&quot;addResource&quot;]" action="$.ajax({&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j- Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;107&quot;].join(&quot;&amp;&quot;),&quot;complete&quot;:function(){$(&quot;body&quot;).append(&quot;&lt;div class=&quot;loading&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/images/wait.gif&quot;/&gt;&lt;/div&gt;&quot;);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeNsKlE&quot;,&quot;108&quot;].join (&quot;&amp;&quot;),&quot;complete&quot;:function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/NextPlan&quot;,&quot;data&quot;:[&quot;_s=CY_Wx_-A8j-Q3hcq&quot;,&quot;_k=RPZesCNB2JeN z-index 3 ... Fr day 17 September 2010
  • 28. JQuery-SVG • jQuery load for SVG content • Load new content in SVG canvas • Add content at end of SVG Canvas • + add content to existing SVG element • Control "z-index" by adding to SVG groups • Not yet present on squeaksource / jQuery plugin Friday 17 September 2010