SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
NeXTPLAN*
                             Enterprise software that rocks!
                                      with Seaside & Smalltalk




                            Johan Brichau - johan@inceptive.be




Monday 13 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.



Monday 13 September 2010
NeXTPLAN*




Monday 13 September 2010
NeXTPLAN*




Monday 13 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


Monday 13 September 2010
Demo 1


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




Monday 13 September 2010
Component-based




Monday 13 September 2010
Component-based




Monday 13 September 2010
Component-based




Monday 13 September 2010
Ajax Updates Architecture

                  • Every operation eventually invokes the
                           update rendering

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




Monday 13 September 2010
Global Ajax Update




Monday 13 September 2010
Global Ajax Update




Monday 13 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

Monday 13 September 2010
Local updates




Monday 13 September 2010
Local updates




Monday 13 September 2010
Local updates




Monday 13 September 2010
Local updates




Monday 13 September 2010
Local updates




            Updates of other users (via database changes)!
Monday 13 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




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




Monday 13 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]




Monday 13 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]




Monday 13 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:




Monday 13 September 2010
Local updates



                 • Own session changes
                           • True object-based change propagation

                 • Concurrent session changes
                           • Manual handling


Monday 13 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


Monday 13 September 2010
Demo 2


                 • [show Tree view animations driven by Ajax
                           updates]




Monday 13 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
                              ...




Monday 13 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


Monday 13 September 2010
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!

Más contenido relacionado

Destacado

FirstSecondDraft
FirstSecondDraftFirstSecondDraft
FirstSecondDraft
LaraMedia
 

Destacado (7)

Lean Social How to Pick the Right Social Media for your Business - Forward ...
Lean Social   How to Pick the Right Social Media for your Business - Forward ...Lean Social   How to Pick the Right Social Media for your Business - Forward ...
Lean Social How to Pick the Right Social Media for your Business - Forward ...
 
A.FAHEEM SHEIKH_CV
A.FAHEEM SHEIKH_CVA.FAHEEM SHEIKH_CV
A.FAHEEM SHEIKH_CV
 
iPhone Backup SMS
iPhone Backup SMS iPhone Backup SMS
iPhone Backup SMS
 
KieferorthopädieZahnversicherung?
KieferorthopädieZahnversicherung?KieferorthopädieZahnversicherung?
KieferorthopädieZahnversicherung?
 
Smalltalk Debug Lives in the Matrix
Smalltalk Debug Lives in the MatrixSmalltalk Debug Lives in the Matrix
Smalltalk Debug Lives in the Matrix
 
FirstSecondDraft
FirstSecondDraftFirstSecondDraft
FirstSecondDraft
 
EXCEL Extraction
EXCEL ExtractionEXCEL Extraction
EXCEL Extraction
 

Similar a NeXTPLAN: Enterprise software that rocks!

JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
Simon Willison
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
Christopher Schmitt
 
Real Time Web - What's that for?
Real Time Web - What's that for?Real Time Web - What's that for?
Real Time Web - What's that for?
Martyn Loughran
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
Patrick Lauke
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 

Similar a NeXTPLAN: Enterprise software that rocks! (20)

JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
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
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An Introduction
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
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
 
Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moible
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
Node azure
Node azureNode azure
Node azure
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
 
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabsTesting frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabs
 
Real Time Web - What's that for?
Real Time Web - What's that for?Real Time Web - What's that for?
Real Time Web - What's that for?
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP Application
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
 
Treinamento frontend
Treinamento frontendTreinamento frontend
Treinamento frontend
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 

Más de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Más de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

NeXTPLAN: Enterprise software that rocks!

  • 1. NeXTPLAN* Enterprise software that rocks! with Seaside & Smalltalk Johan Brichau - johan@inceptive.be Monday 13 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. Monday 13 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 Monday 13 September 2010
  • 6. Demo 1 • [demo to show component interactions in calendar: grouped events & bubbles, changing names, decoration] Monday 13 September 2010
  • 10. Ajax Updates Architecture • Every operation eventually invokes the update rendering • Update rendering • Component re-rendering • Ajax-jQuery replace operation Monday 13 September 2010
  • 11. Global Ajax Update Monday 13 September 2010
  • 12. Global Ajax Update Monday 13 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 Monday 13 September 2010
  • 14. Local updates Monday 13 September 2010
  • 15. Local updates Monday 13 September 2010
  • 16. Local updates Monday 13 September 2010
  • 17. Local updates Monday 13 September 2010
  • 18. Local updates Updates of other users (via database changes)! Monday 13 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 Monday 13 September 2010
  • 20. Seaside Design Pattern? UpdateableComponent htmlId renderContentOn: Complete render renderInternalOn: Internal render needsRefresh Wants to render? scriptToUpdateOn: Script to render Monday 13 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] Monday 13 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] Monday 13 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: Monday 13 September 2010
  • 24. Local updates • Own session changes • True object-based change propagation • Concurrent session changes • Manual handling Monday 13 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 Monday 13 September 2010
  • 26. Demo 2 • [show Tree view animations driven by Ajax updates] Monday 13 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 ... Monday 13 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 Monday 13 September 2010