>From b3ac95953459ad5926d02e9cce2fff3cd698a4d2 Mon Sep 17 00:00:00 2001
From: Tomas Sedovic <tsedovic@redhat.com>
Date: Wed, 26 May 2010 17:48:16 +0200
Subject: [PATCH aggregator 2/2] Remove unused JS libraries, templates and views.

ARMAGEDDON!
---
 src/app/views/layouts/_graph.rhtml                 |   86 -
 src/app/views/layouts/_navigation_tabs.rhtml       |   56 -
 src/app/views/layouts/_tree.rhtml                  |  152 -
 src/app/views/layouts/cloud/_notification.rhtml    |   31 -
 src/app/views/layouts/cloud/cloud.rhtml            |   58 -
 .../views/layouts/components/standard_tree.rhtml   |  202 --
 src/app/views/layouts/components/tree.rhtml        |   62 -
 src/app/views/search/_grid.rhtml                   |   41 -
 src/app/views/search/results.rhtml                 |  102 -
 src/public/images/treeview-black-line.gif          |  Bin 1877 -> 0 bytes
 src/public/images/treeview-black.gif               |  Bin 1216 -> 0 bytes
 src/public/images/treeview-default-line.gif        |  Bin 1993 -> 0 bytes
 src/public/images/treeview-default.gif             |  Bin 1222 -> 0 bytes
 src/public/images/treeview-famfamfam-line.gif      |  Bin 807 -> 0 bytes
 src/public/images/treeview-famfamfam.gif           |  Bin 13676 -> 0 bytes
 src/public/images/treeview-gray-line.gif           |  Bin 1877 -> 0 bytes
 src/public/images/treeview-gray.gif                |  Bin 1230 -> 0 bytes
 src/public/images/treeview-red-line.gif            |  Bin 1877 -> 0 bytes
 src/public/images/treeview-red.gif                 |  Bin 1230 -> 0 bytes
 src/public/javascripts/flexigrid.js                | 1471 ---------
 src/public/javascripts/flexigrid.pack.js           |   11 -
 .../javascripts/jquery-treeview/changelog.txt      |   29 -
 .../javascripts/jquery-treeview/demo/async.html    |   44 -
 src/public/javascripts/jquery-treeview/demo/bg.gif |  Bin 1175 -> 0 bytes
 .../javascripts/jquery-treeview/demo/demo.js       |   43 -
 .../javascripts/jquery-treeview/demo/images.html   |   56 -
 .../javascripts/jquery-treeview/demo/index.html    |  340 --
 .../javascripts/jquery-treeview/demo/large.html    |  559 ----
 .../jquery-treeview/demo/prerendered.html          |  621 ----
 .../javascripts/jquery-treeview/demo/screen.css    |   24 -
 .../javascripts/jquery-treeview/demo/simple.html   |   82 -
 .../javascripts/jquery-treeview/demo/source.php    |   87 -
 .../javascripts/jquery-treeview/demo/source.phps   |   87 -
 .../jquery-treeview/images/ajax-loader.gif         |  Bin 847 -> 0 bytes
 .../jquery-treeview/images/elbow-minus-nl.gif      |  Bin 898 -> 0 bytes
 .../jquery-treeview/images/elbow-plus-nl.gif       |  Bin 900 -> 0 bytes
 .../javascripts/jquery-treeview/images/file.gif    |  Bin 110 -> 0 bytes
 .../jquery-treeview/images/folder-closed.gif       |  Bin 105 -> 0 bytes
 .../javascripts/jquery-treeview/images/folder.gif  |  Bin 106 -> 0 bytes
 .../jquery-treeview/images/icon_hdwarepool.png     |  Bin 1179 -> 0 bytes
 .../images/icon_hdwarepool_disabled.png            |  Bin 48713 -> 0 bytes
 .../jquery-treeview/images/icon_vmpool.png         |  Bin 689 -> 0 bytes
 .../images/icon_vmpool_disabled.png                |  Bin 47916 -> 0 bytes
 .../javascripts/jquery-treeview/images/minus.gif   |  Bin 837 -> 0 bytes
 .../javascripts/jquery-treeview/images/plus.gif    |  Bin 841 -> 0 bytes
 .../jquery-treeview/images/treeview-black-line.gif |  Bin 1877 -> 0 bytes
 .../jquery-treeview/images/treeview-black.gif      |  Bin 1216 -> 0 bytes
 .../images/treeview-default-line.gif               |  Bin 1993 -> 0 bytes
 .../jquery-treeview/images/treeview-default.gif    |  Bin 1222 -> 0 bytes
 .../images/treeview-famfamfam-line.gif             |  Bin 807 -> 0 bytes
 .../jquery-treeview/images/treeview-famfamfam.gif  |  Bin 13676 -> 0 bytes
 .../jquery-treeview/images/treeview-gray-line.gif  |  Bin 1877 -> 0 bytes
 .../jquery-treeview/images/treeview-gray.gif       |  Bin 1230 -> 0 bytes
 .../jquery-treeview/images/treeview-red-line.gif   |  Bin 1877 -> 0 bytes
 .../jquery-treeview/images/treeview-red.gif        |  Bin 1230 -> 0 bytes
 .../jquery-treeview/jquery.ovirt.treeview.css      |   75 -
 .../jquery-treeview/jquery.treeview.async.js       |  121 -
 .../jquery-treeview/jquery.treeview.css            |   81 -
 .../javascripts/jquery-treeview/jquery.treeview.js |  251 --
 .../jquery-treeview/jquery.treeview.min.js         |   15 -
 .../jquery-treeview/jquery.treeview.pack.js        |   16 -
 .../jquery-treeview/lib/jquery.cookie.js           |   92 -
 .../javascripts/jquery-treeview/lib/jquery.js      | 3363 --------------------
 .../javascripts/jquery-treeview/ovirt.treeview.css |   88 -
 src/public/javascripts/jquery-treeview/todo        |    8 -
 src/public/javascripts/jquery.form.js              |  581 ----
 src/public/javascripts/jquery.jgrowl.js            |  204 --
 src/public/javascripts/jquery.livequery.js         |  250 --
 src/public/javascripts/jquery.livequery.min.js     |   11 -
 src/public/javascripts/jquery.livequery.pack.js    |    9 -
 src/public/javascripts/jquery.ovirt.treeview.js    |  100 -
 src/public/javascripts/ovirt.js                    |  396 ---
 src/public/javascripts/ovirt.tree.js               |  221 --
 src/public/stylesheets/flexigrid/flexigrid.css     |  732 -----
 src/public/stylesheets/flexigrid/images/add2.png   |  Bin 48768 -> 0 bytes
 src/public/stylesheets/flexigrid/images/bg.gif     |  Bin 854 -> 0 bytes
 .../stylesheets/flexigrid/images/bg_tdiv.gif       |  Bin 13129 -> 0 bytes
 .../stylesheets/flexigrid/images/bg_tdiv.jpg       |  Bin 13205 -> 0 bytes
 .../stylesheets/flexigrid/images/btn-sprite.gif    |  Bin 955 -> 0 bytes
 src/public/stylesheets/flexigrid/images/close.png  |  Bin 1219 -> 0 bytes
 src/public/stylesheets/flexigrid/images/ddn.png    |  Bin 111 -> 0 bytes
 src/public/stylesheets/flexigrid/images/dn.png     |  Bin 220 -> 0 bytes
 src/public/stylesheets/flexigrid/images/fhbg.gif   |  Bin 836 -> 0 bytes
 src/public/stylesheets/flexigrid/images/first.gif  |  Bin 217 -> 0 bytes
 src/public/stylesheets/flexigrid/images/hl.png     |  Bin 189 -> 0 bytes
 src/public/stylesheets/flexigrid/images/last.gif   |  Bin 220 -> 0 bytes
 src/public/stylesheets/flexigrid/images/line.gif   |  Bin 13116 -> 0 bytes
 src/public/stylesheets/flexigrid/images/load.gif   |  Bin 1737 -> 0 bytes
 src/public/stylesheets/flexigrid/images/load.png   |  Bin 827 -> 0 bytes
 .../stylesheets/flexigrid/images/magnifier.png     |  Bin 615 -> 0 bytes
 src/public/stylesheets/flexigrid/images/next.gif   |  Bin 185 -> 0 bytes
 src/public/stylesheets/flexigrid/images/prev.gif   |  Bin 186 -> 0 bytes
 src/public/stylesheets/flexigrid/images/up.png     |  Bin 224 -> 0 bytes
 src/public/stylesheets/flexigrid/images/uup.png    |  Bin 130 -> 0 bytes
 src/public/stylesheets/flexigrid/images/wbg.gif    |  Bin 868 -> 0 bytes
 .../stylesheets/images/treeview-black-line.gif     |  Bin 1877 -> 0 bytes
 src/public/stylesheets/images/treeview-black.gif   |  Bin 1216 -> 0 bytes
 .../stylesheets/images/treeview-default-line.gif   |  Bin 1993 -> 0 bytes
 src/public/stylesheets/images/treeview-default.gif |  Bin 1222 -> 0 bytes
 .../stylesheets/images/treeview-famfamfam-line.gif |  Bin 807 -> 0 bytes
 .../stylesheets/images/treeview-famfamfam.gif      |  Bin 13676 -> 0 bytes
 .../stylesheets/images/treeview-gray-line.gif      |  Bin 1877 -> 0 bytes
 src/public/stylesheets/images/treeview-gray.gif    |  Bin 1230 -> 0 bytes
 .../stylesheets/images/treeview-red-line.gif       |  Bin 1877 -> 0 bytes
 src/public/stylesheets/images/treeview-red.gif     |  Bin 1230 -> 0 bytes
 src/public/stylesheets/jquery.jgrowl.css           |  125 -
 src/public/stylesheets/ovirt-tree/tree.css         |  105 -
 src/public/stylesheets/ovirt.css                   |  112 -
 108 files changed, 0 insertions(+), 11200 deletions(-)
 delete mode 100644 src/app/views/layouts/_graph.rhtml
 delete mode 100644 src/app/views/layouts/_navigation_tabs.rhtml
 delete mode 100644 src/app/views/layouts/_tree.rhtml
 delete mode 100644 src/app/views/layouts/cloud/_notification.rhtml
 delete mode 100644 src/app/views/layouts/cloud/cloud.rhtml
 delete mode 100644 src/app/views/layouts/components/standard_tree.rhtml
 delete mode 100644 src/app/views/layouts/components/tree.rhtml
 delete mode 100644 src/app/views/search/_grid.rhtml
 delete mode 100644 src/app/views/search/results.rhtml
 delete mode 100644 src/public/images/treeview-black-line.gif
 delete mode 100644 src/public/images/treeview-black.gif
 delete mode 100644 src/public/images/treeview-default-line.gif
 delete mode 100644 src/public/images/treeview-default.gif
 delete mode 100644 src/public/images/treeview-famfamfam-line.gif
 delete mode 100644 src/public/images/treeview-famfamfam.gif
 delete mode 100644 src/public/images/treeview-gray-line.gif
 delete mode 100644 src/public/images/treeview-gray.gif
 delete mode 100644 src/public/images/treeview-red-line.gif
 delete mode 100644 src/public/images/treeview-red.gif
 delete mode 100644 src/public/javascripts/flexigrid.js
 delete mode 100644 src/public/javascripts/flexigrid.pack.js
 delete mode 100644 src/public/javascripts/jquery-treeview/changelog.txt
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/async.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/bg.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/demo.js
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/images.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/index.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/large.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/prerendered.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/screen.css
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/simple.html
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/source.php
 delete mode 100644 src/public/javascripts/jquery-treeview/demo/source.phps
 delete mode 100644 src/public/javascripts/jquery-treeview/images/ajax-loader.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/elbow-minus-nl.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/elbow-plus-nl.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/file.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/folder-closed.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/folder.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/icon_hdwarepool.png
 delete mode 100644 src/public/javascripts/jquery-treeview/images/icon_hdwarepool_disabled.png
 delete mode 100644 src/public/javascripts/jquery-treeview/images/icon_vmpool.png
 delete mode 100644 src/public/javascripts/jquery-treeview/images/icon_vmpool_disabled.png
 delete mode 100644 src/public/javascripts/jquery-treeview/images/minus.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/plus.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-black-line.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-black.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-default-line.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-default.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-famfamfam-line.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-famfamfam.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-gray-line.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-gray.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-red-line.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/images/treeview-red.gif
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.ovirt.treeview.css
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.treeview.async.js
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.treeview.css
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.treeview.js
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.treeview.min.js
 delete mode 100644 src/public/javascripts/jquery-treeview/jquery.treeview.pack.js
 delete mode 100644 src/public/javascripts/jquery-treeview/lib/jquery.cookie.js
 delete mode 100644 src/public/javascripts/jquery-treeview/lib/jquery.js
 delete mode 100644 src/public/javascripts/jquery-treeview/ovirt.treeview.css
 delete mode 100644 src/public/javascripts/jquery-treeview/todo
 delete mode 100644 src/public/javascripts/jquery.form.js
 delete mode 100644 src/public/javascripts/jquery.jgrowl.js
 delete mode 100644 src/public/javascripts/jquery.livequery.js
 delete mode 100644 src/public/javascripts/jquery.livequery.min.js
 delete mode 100644 src/public/javascripts/jquery.livequery.pack.js
 delete mode 100644 src/public/javascripts/jquery.ovirt.treeview.js
 delete mode 100644 src/public/javascripts/ovirt.js
 delete mode 100644 src/public/javascripts/ovirt.tree.js
 delete mode 100644 src/public/stylesheets/flexigrid/flexigrid.css
 delete mode 100644 src/public/stylesheets/flexigrid/images/add2.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/bg.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/bg_tdiv.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/bg_tdiv.jpg
 delete mode 100644 src/public/stylesheets/flexigrid/images/btn-sprite.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/close.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/ddn.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/dn.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/fhbg.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/first.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/hl.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/last.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/line.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/load.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/load.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/magnifier.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/next.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/prev.gif
 delete mode 100644 src/public/stylesheets/flexigrid/images/up.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/uup.png
 delete mode 100644 src/public/stylesheets/flexigrid/images/wbg.gif
 delete mode 100644 src/public/stylesheets/images/treeview-black-line.gif
 delete mode 100644 src/public/stylesheets/images/treeview-black.gif
 delete mode 100644 src/public/stylesheets/images/treeview-default-line.gif
 delete mode 100644 src/public/stylesheets/images/treeview-default.gif
 delete mode 100644 src/public/stylesheets/images/treeview-famfamfam-line.gif
 delete mode 100644 src/public/stylesheets/images/treeview-famfamfam.gif
 delete mode 100644 src/public/stylesheets/images/treeview-gray-line.gif
 delete mode 100644 src/public/stylesheets/images/treeview-gray.gif
 delete mode 100644 src/public/stylesheets/images/treeview-red-line.gif
 delete mode 100644 src/public/stylesheets/images/treeview-red.gif
 delete mode 100644 src/public/stylesheets/jquery.jgrowl.css
 delete mode 100644 src/public/stylesheets/ovirt-tree/tree.css
 delete mode 100644 src/public/stylesheets/ovirt.css

diff --git a/src/app/views/layouts/_graph.rhtml b/src/app/views/layouts/_graph.rhtml
deleted file mode 100644
index bb9f13d..0000000
--- a/src/app/views/layouts/_graph.rhtml
+++ /dev/null
@@ -1,86 +0,0 @@
-<script type="text/javascript">
-        <%  lMethodName  = "draw_" + div_id + "_graph" %>
-        <%  lDrawMe      = true         %>
-        <%  lHideDiv     = false        %>
-        <%  lIncludeDiv  = true         %>
-        <%  lDataType    = "summary"    %>
-        <%  lChartType   = "line"       %>
-        <%  lXGridLines  = "null"       %>
-        <%  lYGridLines  = "null"       %>
-        <%  lXAxisLine   = ""           %>
-        <%  lYAxisLine   = ""           %>
-        <%  lScaleX      = 0            %>
-        <%  lTicksX      = 0            %>
-        <%  lScaleY      = 0            %>
-        <%  lTicksY      = 0            %>
-        <%  lCss_class   = ""           %>
-        <%  lUrl         = ""           %>
-
-        <%  lMethodName  = methodName    if defined? methodName and !methodName.nil? %>
-        <%  lDrawMe      = drawMe        if defined? drawMe     and !drawMe.nil?     %>
-        <%  lHideDiv     = hideDiv       if defined? hideDiv    and !hideDiv.nil?    %>
-        <%  lIncludeDiv  = includeDiv    if defined? includeDiv and !includeDiv.nil? %>
-        <%  lDataType    = dataType      if defined? dataType   and !dataType.nil?   %>
-        <%  lChartType   = chartType     if defined? chartType  and !chartType.nil?  %>
-        <%  lXGridLines  = xGridLines    if defined? xGridLines and !xGridLines.nil? %>
-        <%  lYGridLines  = yGridLines    if defined? yGridLines and !yGridLines.nil? %>
-        <%  lXAxisLine   = xAxisLine     if defined? xAxistLine and !xAxisLine.nil?  %>
-        <%  lYAxisLine   = yAxisLine     if defined? yAxisLine  and !yAxisLine.nil?  %>
-        <%  lScaleY      = scaleY        if defined? scaleY     and !scaleY.nil?     %>
-        <%  lTicksY      = ticksY        if defined? ticksY     and !ticksY.nil?     %>
-        <%  lScaleX      = scaleX        if defined? scaleX     and !scaleX.nil?     %>
-        <%  lTicksX      = ticksX        if defined? ticksX     and !ticksX.nil?     %>
-        <%  lCss_class   = css_class     if defined? css_class  and !css_class.nil?  %>
-        <%  lUrl         = url           if defined? url        and !url.nil?        %>
-
-        function <%= lMethodName %>(graph_data){
-            $("#<%= div_id %>").svg();
-            var svg = svgManager.getSVGFor("#<%= div_id %>");
-            svg.graph.noDraw();
-            svg.graph.chartFormat('white', 'white').chartType("<%= lChartType %>", {explode: [2], explodeDist: 10});
-            $(graph_data.dataset).each(
-                function(){
-                    svg.graph.addSeries(this.name, this.values, this.fill, this.stroke, this.strokeWidth);
-                }
-             );
-             svg.graph.gridlines("<%= lXGridLines %>", "<%= lYGridLines %>");
-             svg.graph.xAxis.line("<%= lXAxisLine %>", 0);
-             svg.graph.xAxis.scale(0,<%= lScaleX %>);
-             svg.graph.xAxis.ticks(<%= lTicksX %>, 0);
-             if(graph_data.timepoints != null && graph_data.timepoints.length != 0) svg.graph.xAxis.labels(graph_data.timepoints);
-             svg.graph.yAxis.line("<%= lYAxisLine %>", 0);
-             svg.graph.yAxis.ticks(<%= lTicksY %>, 0);
-             svg.graph.yAxis.scale(0,<%= lScaleY %>);
-             if(graph_data.scale != null && graph_data.scale.length != 0) svg.graph.yAxis.labels(graph_data.scale);
-             svg.graph.legend.show(false);                      
-             svg.graph.redraw();
-        };
-
-        function <%= lMethodName %>_get_data(){
-            var params = { id:1, type:"<%= lDataType %>", timeframe:"7 days", isJSON:true};
-            $.getJSON("<%= lUrl %>", params, 
-                      function(response) { 
-                            <%= lMethodName %>(response);
-                      });
-        };
-
-
-    $(document).ready(function(){ 
-
-        <% if lDrawMe %>
-            if('<%= graph_data.to_s %>' != ""){
-                <%= lMethodName %>(<%= graph_data %>);
-            }else{
-                <%= lMethodName %>_get_data();
-            }
-        <% end %>
-
-        <% if lHideDiv %>
-            $("#<%= div_id %>").parent().hide();
-        <% end %>
-    });  
-</script>
-
-<% if lIncludeDiv %>
-    <div id="<%= div_id %>" class="<%= lCss_class %>"></div>
-<% end %>
diff --git a/src/app/views/layouts/_navigation_tabs.rhtml b/src/app/views/layouts/_navigation_tabs.rhtml
deleted file mode 100644
index fd51d52..0000000
--- a/src/app/views/layouts/_navigation_tabs.rhtml
+++ /dev/null
@@ -1,56 +0,0 @@
-<% if 1 ==2  %>
-<% if controller.controller_name == "pool" %>
-  <script>
-    $(document).ready(function(){
-      $tabs = $("#hardware_nav_tabs").tabs({
-          pool_type: "hardware",
-          selected: <%if params[:tab]%><%=params[:tab]%><%else%>0<%end%>
-      });      
-    });
-  </script>
-  <ul id="hardware_nav_tabs" class="ui-tabs-nav">
-    <li id="nav_summary"><%= link_to "Summary", {:action => 'show', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_hosts">  <%= link_to "Hosts", {:action => 'show_hosts', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_storage"><%= link_to "Storage", {:action => 'show_storage', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_vmpool"> <%= link_to "Virtual Machine Pools", {:action => 'show_vms', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_access"> <%= link_to "User Access", {:action => 'show_users', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_tasks">  <%= link_to "Tasks", {:action => 'show_tasks', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-  </ul>
-<% elsif controller.controller_name == "resources" and @pool != nil %>
-  <script>
-    $(document).ready(function(){
-      $tabs = $("#resources_nav_tabs").tabs({
-          pool_type: "resource",
-          selected: <%if params[:tab]%><%=params[:tab]%><%else%>0<%end%>
-      });
-    });
-  </script>
-  <ul id="resources_nav_tabs" class="ui-tabs-nav">
-    <li id="nav_summary" class="ui-tabs-selected"><%= link_to "Summary", {:action => 'show', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_vmpool"> <%= link_to "Virtual Machines", {:action => 'show_vms', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_access"> <%= link_to "User Access", {:action => 'show_users', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_tasks">  <%= link_to "Tasks", {:action => 'show_tasks', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-  </ul>
-<% elsif controller.controller_name == "smart_pools"  %>
-  <script>
-    $(document).ready(function(){
-      $tabs = $("#smart_pools_nav_tabs").tabs({
-          pool_type: "smart",
-          selected: <%if params[:tab]%><%=params[:tab]%><%else%>0<%end%>
-      });
-    });
-  </script>
-  <ul id="smart_pools_nav_tabs" class="ui-tabs-nav">
-    <li id="nav_summary" class="ui-tabs-selected"><%= link_to "Summary", {:action => 'show', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_hosts">  <%= link_to "Hosts", {:action => 'show_hosts', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_storage"><%= link_to "Storage", {:action => 'show_storage', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_pools"> <%= link_to "Pools", {:action => 'show_pools', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_vms"> <%= link_to "Virtual Machines", {:action => 'show_vms', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-    <li id="nav_access"> <%= link_to "User Access", {:action => 'show_users', :id => @pool.id, :nolayout => :true}, :title => "content area" %></li>
-  </ul>
-<% elsif controller.controller_name == "search"  %>
-  <ul id="search_nav_tabs" class="ui-tabs-nav">
-    <li id="nav_search" class="ui-tabs-selected"><a href="#">Search Results</a></li>
-  </ul>
-<% end %>
-<% end %>
\ No newline at end of file
diff --git a/src/app/views/layouts/_tree.rhtml b/src/app/views/layouts/_tree.rhtml
deleted file mode 100644
index de12927..0000000
--- a/src/app/views/layouts/_tree.rhtml
+++ /dev/null
@@ -1,152 +0,0 @@
-<script type="text/javascript">
-    var treeTimer, urlObj;
-    var processRecursive = true;
-    var recursiveTreeTempl, treeItemTempl, tree_url;
-    $(document).ready(function(){
-      recursiveTreeTempl = TrimPath.parseDOMTemplate("nav_tree_template");
-      treeItemTempl = TrimPath.parseDOMTemplate("nav_tree_updater_template");
-      urlObj = {
-        "HardwarePool" : "<%=  url_for :controller =>'/hardware', :action => 'show' %>",
-        "VmResourcePool" : "<%=  url_for :controller =>'/resources', :action => 'show' %>",
-        "SmartPool" : "<%=  url_for :controller =>'/smart_pools', :action => 'show' %>",
-        "DirectoryPool" : null
-      }
-      tree_url = "<%=  url_for :controller =>"/tree", :action => "return_filtered_list" %>";
-      processTree();
-      treeTimer = setInterval(processTree,15000);
-      $('div.nav-dashboard a').bind('click', function(e){
-          if(this === e.target){
-              var myURL = $(this).attr('href');
-              $('.current').removeClass('current');
-              $(this).parent().addClass('current');
-              $.ajax({
-                url: this.href,
-                dataType: 'html',
-                data: {ajax:true},
-                success: handleTabsAndContent,
-                error: function(xhr) {$.jGrowl(xhr.status + ' ' + xhr.statusText);}
-              });
-              e.preventDefault();
-          }
-      });
-      $('div.nav-networks a').bind('click', function(e){
-          if(this === e.target){
-              var myURL = $(this).attr('href');
-              $('.current').removeClass('current');
-              $(this).parent().addClass('current');
-              $.ajax({
-                url: this.href,
-                dataType: 'html',
-                success: handleTabsAndContent,
-                error: function(xhr) {$.jGrowl(xhr.status + ' ' + xhr.statusText);}
-              });
-              e.preventDefault();
-          }
-      });
-      $('#nav_tree_form ul.ovirt-tree li').livequery(
-        function(){
-          $(this)
-          .children('div')
-          .bind('click',function(){
-            $('#nav_tree_form ul.ovirt-tree li div').removeClass('current');
-            var thisHref = (urlObj[$(this).attr('class')] !=null) ? urlObj[$(this).attr('class')] + '/' + this.id :null;
-            $('div.nav-dashboard').removeClass('current');
-            $('div.nav-networks').removeClass('current');
-            $(this).toggleClass('current');
-            currentNode = this.id;
-            if ($tabs != null) {
-              var tabType = $tabs.data("pool_type.tabs");
-              ($(this).attr('class').toLowerCase().indexOf(tabType) == -1) ?selected_tab = 0 :selected_tab = $tabs.data("selected.tabs");
-            }
-            if (thisHref != null) {
-              $.ajax({
-                url: thisHref,
-                type: 'GET',
-                data: {ajax:true,tab:selected_tab},
-                dataType: 'html',
-                success: handleTabsAndContent,
-                error: function(xhr) {$.jGrowl(xhr.status + ' ' + xhr.statusText);}
-              });
-            }
-          });
-        },function(){
-          $(this)
-          .children('div')
-          .unbind('click');
-        }
-      );
-      $('#nav_tree_form ul.ovirt-tree li:has(ul)').livequery(
-        function(){
-          $(this)
-            .children('span.hitarea')
-            .click(function(event){
-              if (this == event.target) {
-                  if($(this).siblings('ul').size() >0) {
-                      $(this)
-                        .toggleClass('expanded')
-                        .toggleClass('expandable')
-                        .siblings('ul').slideToggle("normal");
-                  }
-              }
-            });
-        },function(){
-            $(this).children('span.hitarea')
-              .removeClass('expanded expandable')
-              .unbind('click');
-        }
-      );
-    });
-</script>
-
-<!-- Output elements -->
-<% selected = "current" if controller.controller_name == "dashboard" && params[:action] == "index" %>
-<div class="nav-dashboard <%= selected %>">
-  <%= link_to "Dashboard", {:controller => "dashboard"} %>
-</div>
-<% network_selected = "current" if controller.controller_name == "network" %>
-
-<%if HardwarePool.get_default_pool.can_modify(@user) -%>
-  <div class="nav-networks <%= network_selected %>">
-    <%= link_to "Networks", {:controller => "network", :action => "list", :ajax => true}, { :id => "networks"} %>
-  </div>
-<% end -%>
-<form id="nav_tree_form">
-  <div class="nav-tree">
-    <ul id="nav_tree" class="ovirt-tree"></ul>
-  </div>
-</form>
-
-<!-- Template content -->
-<!-- TODO: possibly move these templates into external files-->
-<textarea id="nav_tree_updater_template" style="display:none;">
-  <li>
-    <input type="checkbox" name="item[]" value="${id}-${name}" style="display:none" checked="checked"/>
-    <span class="hitarea {if defined('children')} expandable{/if}">&nbsp;</span><div id="${id}" class="${type}">${name}</div>
-  </li>
-</textarea>
-<textarea id="nav_tree_template" style="display:none;">
-  {macro htmlList(list, optionalListType)}
-    {var listType = optionalListType != null ? optionalListType : "ul"}
-    <${listType} style="display:none;">
-      {for item in list}
-        <li>
-          <input type="checkbox" name="item[]" value="${item.id}-${item.name}" style="display:none" checked="checked"/>
-          <span class="hitarea {if item.children} expandable{/if}">&nbsp;</span><div id="${item.id}" class="${item.type}">${item.name}</div>
-          {if item.children}
-            ${htmlList(item.children)}
-          {/if}
-        </li>
-      {/for}
-    </${listType}>
-  {/macro}
-
-  {for item in pools}
-    <li>
-      <input type="checkbox" name="item[]" value="${item.id}-${item.name}" style="display:none" checked="checked"/>
-      <span class="hitarea {if item.children} expandable{/if}">&nbsp;</span><div id="${item.id}" class="${item.type}">${item.name}</div>
-      {if item.children}
-        ${htmlList(item.children)}
-      {/if}
-    </li>
-  {/for}
-</textarea>
diff --git a/src/app/views/layouts/cloud/_notification.rhtml b/src/app/views/layouts/cloud/_notification.rhtml
deleted file mode 100644
index bd468a1..0000000
--- a/src/app/views/layouts/cloud/_notification.rhtml
+++ /dev/null
@@ -1,31 +0,0 @@
-<div id="notification">
-  <%= link_to "", params, :id => "close-notify" %>
-  <% if flash[:error] %>
-      <% if !flash[:error][:successes].nil? && !flash[:error][:successes].empty? %>
-      <div class="success">
-        <h4>The following items were successful:</h4>
-        <ul>
-        <% flash[:error][:successes].each {|item| %>
-          <li><%= item %></li>
-        <% } %>
-        </ul>
-      </div>
-    <% end %>
-    <% if !flash[:error][:failures].nil? && !flash[:error][:failures].empty? %>
-      <div class="warning"><h4><%= flash[:error][:summary]%></h4></div>
-      <div class="error">
-        <ul>
-          <% flash[:error][:failures].each {|key, value| %>
-            <li><%= key %>: <%= value %></li>
-          <% } %>
-        </ul>
-      </div>
-    <% end %>
-  <% end %>
-  <% if flash[:warning] %>
-    <div class="warning"><h4><%= flash[:warning] %></h4></div>
-  <% end %>
-  <% if flash[:notice] %>
-    <div class="success"><ul><li><%= flash[:notice] %></li></ul></div>
-  <% end %>
-</div>
\ No newline at end of file
diff --git a/src/app/views/layouts/cloud/cloud.rhtml b/src/app/views/layouts/cloud/cloud.rhtml
deleted file mode 100644
index 708a2c3..0000000
--- a/src/app/views/layouts/cloud/cloud.rhtml
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
-  <title><%= yield :title -%></title>
-  <link rel="stylesheet" type="text/css" href="http://fedoraproject.org/static/css/fedora.css" />
-  <%= stylesheet_link_tag 'cloud/layout' %>
-    <%= yield :scripts -%>
-  </head>
-
-  <body>
-  <div id="wrapper">
-    <div id="head">
-    <h1><a href="#">The name of our project goes here</a></h1>
-      <!-- Header stuff! -->
-      <div id="login-box">
-        Hi, <%= @user %>
-        | <%= link_to 'Log out', { :controller => "/login", :action => "logout"}%>
-         <%= link_to image_tag("Help_16.png"),
-                {:controller => 'help', :action => @help_section, :anchor => @anchor},
-                :id=>"help-link", :popup => true, :title => "Help" %>
-      </div>
-     </div>
-     <div id="navcontainer">
-        <ul class="navlist">
-          <li>
-            <%=
-                link_to_unless(controller.controller_name == 'dashboard', "Dashboard", { :controller => 'cloud/dashboard' }) do |name|
-                  link_to(name, { :controller => 'cloud/dashboard'}, :class => 'current')
-                end
-            %>
-          </li>
-          <li>
-            <%=
-                link_to_unless(controller.controller_name == 'instance', "Instances", { :controller => 'cloud/instance' }) do |name|
-                  link_to(name, { :controller => 'cloud/instance'}, :class => 'current')
-                end
-            %>
-          </li>
-          <!-- Enable this once we have a profile view.
-          <li>
-            <%=
-                link_to_unless(controller.controller_name == 'profile', "Profiles", { :controller => 'cloud/profile' }) do |name|
-                  link_to(name, { :controller => 'cloud/profile'}, :class => 'current')
-                end
-            %>
-          </li>-->
-        </ul>
-      </div>
-    <div id="content">
-      <%= yield %>
-    </div>
-  </div>
-  </body>
-</html>
diff --git a/src/app/views/layouts/components/standard_tree.rhtml b/src/app/views/layouts/components/standard_tree.rhtml
deleted file mode 100644
index a63f604..0000000
--- a/src/app/views/layouts/components/standard_tree.rhtml
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
-  <title><%= yield :title -%></title>
-  <%= stylesheet_link_tag 'ovirt-tree/tree' %>
-  <%= stylesheet_link_tag 'facebox' %>
-
-  <%= javascript_include_tag "jquery-1.2.6.min.js" -%>
-  <%= javascript_include_tag "jquery.ui-1.5.2/ui/packed/ui.core.packed.js" -%>
-  <%= javascript_include_tag "test/storage_tree_sample_data.js" -%>
-  <%= javascript_include_tag "test/smart_nav_sample_data.js" -%>
-  <%= javascript_include_tag "jquery.form.js" -%>
-  <%= javascript_include_tag "trimpath-template-1.0.38.js" %>
-  <%= javascript_include_tag "ovirt.js" %>
-  <%= javascript_include_tag "ovirt.tree.js" %>
-  <%= javascript_include_tag "facebox.js" %>
-  <script type="text/javascript">
-      var currentDomTreeElem = 'storage_volumes_tree', treeObject;
-    $(document).ready(function(){
-      //initialize tree widget
-      $('#nav_tree').tree({
-          content: {"pools" : pools3.pools},
-          clickHandler: myClickHandler,
-          cacheContent: false
-      });
-      /* $('#some_tree').tree({
-          content: {"pools" : pools3.pools},
-          toggle: myToggler
-      });*/
-      $('#storage_volumes_tree').tree({
-        content: {"pools" : storage_pools.pools},
-        template : 'storage_tree_template',
-        clickHandler: myClickHandler,
-        channel: 'STORAGE_VOLUME',
-        refresh: refreshPostHandler,
-        cacheContent: true
-      });
-      $('#swap_button').bind('click', function(event){
-          var newDomTreeElem;
-          if (currentDomTreeElem === 'storage_volumes_tree') {
-              newDomTreeElem = 'temp_storage_tree';
-          } else { newDomTreeElem = 'storage_volumes_tree'}
-          $('#' + currentDomTreeElem).clone().attr({style: 'background:green',id: newDomTreeElem}).appendTo('body').end().remove();
-          currentDomTreeElem = newDomTreeElem;
-      });
-      $('#refresh_button').bind('click', function(event){
-          $('ul.ovirt-tree').trigger('STORAGE_VOLUME', data_snippet);
-      });
-      $('#empty_button').bind('click', function(event){
-          $('#' + currentDomTreeElem).empty();
-      });
-      $('#populate_button').bind('click', function(event){
-          $('#' + currentDomTreeElem).tree({
-            content: treeObject.content,
-            template : 'storage_tree_template',
-            clickHandler: myClickHandler,
-            selectedNodes: treeObject.selectedNodes,
-            channel: 'STORAGE_VOLUME',
-            refresh: refreshPostHandler,
-            cacheContent: true
-          });
-      });
-      $('#return_button').bind('click', function(event){
-          treeObject = $('#' + currentDomTreeElem).data('tree').options;
-      });
-      $('#toggle_button').bind('click', function(e) {
-          $('#' + currentDomTreeElem).toggle();
-      });
-      $('#open_button').bind('click', function(event){
-          $('#' + currentDomTreeElem).tree('openToSelected');
-      });
-      $('#show_button').bind('click', function(event){
-          $.facebox('');
-          $('#' + currentDomTreeElem).clone().appendTo('td.body > div.content').end().remove();
-          $('#populate_button').trigger('click');
-      });
-    });
-
-    function myToggler(e, elem) {
-        if ($(e.target).is('span.hitarea')){
-            alert('Yay, I am a custom toggler!');
-        }
-    }
-
-    function refreshPostHandler(e, self, data) {
-        //alert('I am ' + self.element.get(0).id + ', and I have a parent of ' + self.getData('sourceID'));
-    }
-
-    function myClickHandler(e, elem) {
-        //VmCreator.test(elem.element.get(0).id);
-        if ($(e.target).is('div') && $(e.target).parent().is('li')){
-          $(e.target)
-          .toggleClass('current');
-        }
-        if ($(e.target).is('img') && $(e.target).parent().is('a')){
-            alert('I got yer link right hea! (' + e.target + ')');
-            e.preventDefault();
-        }
-    }
-
-    var data_snippet = [{
-          "selected":false,
-          "name":"LVM: test_lvm:test_lun3_2",
-          "available":true,
-          "children":[],
-          "create_volume":false,
-          "id":13,
-          "type":"LvmStorageVolume",
-          "ui_object": "LvmStorageVolume_13",
-          "ui_parent": "IscsiStorageVolume_4"
-        }];
-
-  </script>
- </head>
-
- <body>
-   <button id="swap_button">Swap Tree</button>
-   <button id="refresh_button">refresh</button>
-   <button id="empty_button">Empty Tree</button>
-   <button id="populate_button">Populate Storage Tree</button>
-   <button id="return_button">Store Tree Info</button>
-   <button id="toggle_button">Toggle Visibility</button>
-   <button id="open_button">Open To Selected</button>
-   <button id="show_button">Show tree in facebox</button>
-     <form id="nav_tree_form">
-         <ul id="nav_tree" class="ovirt-tree"></ul>
-     </form>
-     <br/><br/><br/><br/>
-     <form id="some_tree_form">
-         <ul id="some_tree" class="ovirt-tree"></ul>
-     </form>
-     <textarea id="tree_template" style="display:none;">
-      {macro htmlList(list, optionalListType)}
-        {var listType = optionalListType != null ? optionalListType : "ul"}
-        <${listType} style="display:none;">
-          {for item in list}
-            <li>
-              <input type="checkbox" name="item[]" value="${item.id}-${item.name}" style="display:none" checked="checked"/>
-              <span class="hitarea {if item.children} expandable{/if}">&nbsp;</span><div id="${item.id}" class="${item.type}">${item.name}</div>
-              {if item.children}
-                ${htmlList(item.children)}
-              {/if}
-            </li>
-          {/for}
-        </${listType}>
-      {/macro}
-
-      {for item in pools}
-        <li>
-          <input type="checkbox" name="item[]" value="${item.id}-${item.name}" style="display:none" checked="checked"/>
-          <span class="hitarea {if item.children} expandable{/if}">&nbsp;</span><div id="${item.id}" class="${item.type}">${item.name}</div>
-          {if item.children}
-            ${htmlList(item.children)}
-          {/if}
-        </li>
-      {/for}
-     </textarea>
-
-    <div id="tree_placeholder">
-     <form id="storage_tree_form">
-       My Name: <input type="text" name="my_name"/>
-       <div>
-         <ul id="storage_volumes_tree" class="ovirt-tree"></ul>
-       </div>
-     </form>
-    </div>
-     <textarea id="storage_tree_template" style="display:none;">
-       {macro htmlList(list, id, isFullList)}
-        {if isFullList}
-        <ul style="display:none;">
-        {/if}
-          {for item in list}
-            <li>
-              <span class="hitarea {if item.children.length > 0} expandable{/if}">&nbsp;</span>
-              <div id="${id}-${item.ui_object}" class="{if !item.available} unclickable{/if}">
-                <input type="checkbox" name="vm[storage_volume_ids][]" value="${item.id}"
-                  {if !item.available}disabled="disabled" style="display:none"{/if}
-                  {if item.selected}checked="checked"{/if}/> ${item.name} {if item.size}(${item.size} GB){/if}
-                  {if item.create_volume}
-                    <input type="hidden" name="return_item" value="true"/><%=image_tag("icon_add_storage.png")%>
-                    <a href="<%= url_for :controller => 'storage', :action => 'new_volume'%>?source_volume_id=${item.id}"
-                      class="selection_facebox"></a>
-                  {/if}
-              </div>
-              {if item.children.length > 0}
-                ${htmlList(item.children, id, true)}
-              {/if}
-            </li>
-          {/for}
-        {if isFullList}
-        </ul>
-        {/if}
-      {/macro}
-
-      ${htmlList(pools, id)}
-     </textarea>
- </body>
-</html>
diff --git a/src/app/views/layouts/components/tree.rhtml b/src/app/views/layouts/components/tree.rhtml
deleted file mode 100644
index 402c6e3..0000000
--- a/src/app/views/layouts/components/tree.rhtml
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
-  <title><%= yield :title -%></title>
-  <%= stylesheet_link_tag 'ovirt-tree/tree' %>
-
-  <%= javascript_include_tag "jquery-1.2.6.min.js" -%>
-  <%= javascript_include_tag "jquery.livequery.min.js" -%>
-  <%= javascript_include_tag "jquery.ui-1.5.2/ui/packed/ui.core.packed.js" -%>
-  <%= javascript_include_tag "test/smart_nav_sample_data.js" -%>
-  <%= javascript_include_tag "jquery.form.js" -%>
-  <%= javascript_include_tag "trimpath-template-1.0.38.js" %>
-  <%= javascript_include_tag "ovirt.tree.js" %>
-  <%= javascript_include_tag "ovirt.js" -%>
-
-  <script type="text/javascript">
-      var $tabs, selected_tab;
-      function delete_vm_pool(id, parent) {
-        $(document).trigger('close.facebox');
-        $.post('<%= url_for :controller => "resources", :action => "destroy" %>',
-               {id: id},
-                function(data,status){
-                  $("#vmpools_grid").flexReload();
-                  processTree();
-                  if (data.alert) {
-                    $.jGrowl(data.alert);
-                  }
-                 }, 'json');
-      }
-      function delete_hw_pool(id, parent) {
-        $(document).trigger('close.facebox');
-        $.post('<%= url_for :controller => "hardware", :action => "destroy" %>',
-               {id: id},
-                function(data,status){
-                  processTree();
-                  if (data.alert) {
-                    $.jGrowl(data.alert);
-                  }
-                 }, 'json');
-      }
-   </script>
-   <%= yield :scripts -%>
- </head>
-
- <body>
-   <div id="side">
-     <%= render :partial => '/layouts/tree' %>
-   </div>
-
-   <div id="tabs-and-content-container">
-     <div id="main">
-        <div id="content_area">
-
-        </div>
-     </div>
-   </div>
- </body>
-</html>
diff --git a/src/app/views/search/_grid.rhtml b/src/app/views/search/_grid.rhtml
deleted file mode 100644
index fca1ba0..0000000
--- a/src/app/views/search/_grid.rhtml
+++ /dev/null
@@ -1,41 +0,0 @@
-<% per_page = 40 %>
-<div id="<%= table_id %>_div">
-<%= "<form id=\"#{table_id}_form\">" if checkboxes %>
-<table id="<%= table_id %>" style="display:none"></table>
-<%= '</form>' if checkboxes %>
-</div>
-<script type="text/javascript">
-    $("#<%= table_id %>").flexigrid
-    (
-    {
-    url: '<%=  url_for :controller => "search",
-                       :action => "results_json" %>',
-    params: [{name: "terms", value: '<%=terms%>'},
-             {name: "model", value: '<%=model%>'},
-             {name: "checkboxes", value: <%=checkboxes%>}],
-    dataType: 'json',
-    colModel : [
-        <%= "{display: '', width : 20, align: 'left', process: #{table_id}checkbox}," if checkboxes %>
-        {display: 'Name', width : 200, align: 'left'},
-        {display: 'Type', width : 120, align: 'left'},
-        {display: '% Match', width : 60, align: 'left'},
-        {display: 'Smart Pools', width : 200, align: 'left'}
-	],
-    //sortname: "hostname",
-    //sortorder: "asc",
-    usepager: true,
-    useRp: true,
-    rp: <%= per_page %>,
-    showTableToggleBtn: true,
-    onSelect: <%= on_select %>,
-    onDeselect: false,
-    onHover: false,
-    onUnhover: false
-    }
-    );
-    function <%= table_id %>checkbox(celDiv)
-    {
-        $(celDiv).html('<input class="grid_checkbox" type="checkbox" name="grid_checkbox'+$(celDiv).html()+'" value="'+$(celDiv).html()+'"/>');
-    }
-
-</script>
diff --git a/src/app/views/search/results.rhtml b/src/app/views/search/results.rhtml
deleted file mode 100644
index 7eb25ef..0000000
--- a/src/app/views/search/results.rhtml
+++ /dev/null
@@ -1,102 +0,0 @@
-<div id="toolbar_nav">
-<form method="POST" id="search-form" action="<%= url_for :controller => "search", :action => 'results' %>">
-<ul>
-    <li>
-      <input id="searchform-field" name="terms" value="<%=@terms%>" onkeypress="" type="text">
-      <input id="searchform-button" src="<%= image_path "icon_search.png"%>" title="Search" type="image">
-      <input id="searchform-model" type="hidden" name="model" value="<%=@model_param%>">
-      Search
-    </li>
-    <li>
-       <%= image_tag "icon_addto_smartpool.png", :style => "vertical-align:middle;" %>&nbsp;&nbsp;Add to Smart Pool &nbsp;&nbsp;&nbsp;<%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
-       <ul>
-        <% smart_pools = SmartPool.smart_pools_for_user(@user) %>
-        <% smart_pools.each_index { |index| %>
-            <li onClick="add_results_to_smart_pool(<%=smart_pools[index][1]%>)"
-            <% if (index == smart_pools.length - 1) or smart_pools[index].length == 3 %>
-                style="border-bottom: 1px solid #CCCCCC;"
-            <% end %>
-               >
-                 <%=smart_pools[index][0]%>
-            </li>
-        <% } %>
-       </ul>
-    </li>
-    <li>
-       &nbsp;&nbsp;Show All &nbsp;&nbsp;&nbsp;<%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
-       <ul>
-        <% @types.each_index { |index| %>
-<!-- for each button we need to submit current form with "model" set to @types[index][1] --!>
-            <li onclick="$('#searchform-model').val('<%=@types[index][1]%>'); $('#searchform-button').click();"
-            <% if (index == @types.length - 1) or @types[index].length == 3 %>
-                style="border-bottom: 1px solid #CCCCCC;"
-            <% end %>
-               >
-<!--                 < % = image_tag ... -->
-                 <%=  @model_param == @types[index][1] ? "X" : "&nbsp;&nbsp;" %>
-                 <%=@types[index][0]%>
-            </li>
-        <% } %>
-       </ul>
-    </li>
-</ul>
-</form>
-</div>
-
-<script type="text/javascript">
-  function results_select(selected_rows)
-  {
-    var selected_ids = new Array()
-    for(i=0; i<selected_rows.length; i++) {
-      selected_ids[i] = selected_rows[i].id;
-    }
-    if (selected_ids.length == 1)
-    {
-      $('#results_selection').load('<%= url_for :controller => "search", :action => "single_result" %>',
-                { class_and_id: selected_ids[0].substring(3)})
-    }
-  }
-  function get_selected_results()
-  {
-    return get_selected_checkboxes("search_grid_form")
-  }
-  function add_results_to_smart_pool(smart_pool)
-  {
-    var results = get_selected_results();
-    if (validate_selected(results, "search result")) {
-      $.post('<%= url_for :controller => "smart_pools", :action => "add_items" %>',
-             { class_and_ids: results.toString(), id: smart_pool },
-             function(data,status){
-               $('#search_grid').flexReload();
-               if (data.alert) {
-                 $.jGrowl(data.alert);
-               }
-             }, 'json');
-    }
-  }
-</script>
-
-<div class="panel_header"></div>
- <% if @results.matches_estimated != 0 %>
-   <div class="data_section">
-      <%= render :partial => "/search/grid", :locals => { :table_id => "search_grid",
-                                                        :terms => @terms,
-                                                        :model => @model_param,
-                                                        :checkboxes => true,
-                                                        :on_select => "results_select" } %>
-   </div>
-   <div class="selection_detail" id="results_selection">
-     <div class="selection_left">
-       <div>Select an item above.</div>
-     </div>
-   </div>
-<% else %>
-   <div class="data_section">
-       <div class="no-grid-items">
-          <img src="images/jumbo_find.png" alt="find" width="145" height="145">
-          <div class="no-grid-items-text">
-            <h2>No results found.</h2>
-          </div>
-       </div>
-   </div>
-<% end %>
diff --git a/src/public/images/treeview-black-line.gif b/src/public/images/treeview-black-line.gif
deleted file mode 100644
index e5496877a07487f2f7437a9f87e07c590b51160a..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-black.gif b/src/public/images/treeview-black.gif
deleted file mode 100644
index d549b9fc56ced0c90bb7ed01c77be78b67fd8d67..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-default-line.gif b/src/public/images/treeview-default-line.gif
deleted file mode 100644
index 37114d3068e0a787dd44a39430a8fc44d1963dcf..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-default.gif b/src/public/images/treeview-default.gif
deleted file mode 100644
index a12ac52ffe4d085657aaf45db3cf5717c751230c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-famfamfam-line.gif b/src/public/images/treeview-famfamfam-line.gif
deleted file mode 100644
index 6e289cecc51b59a01c1278ce95653badf4e643de..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-famfamfam.gif b/src/public/images/treeview-famfamfam.gif
deleted file mode 100644
index 9372b8a849fba4347d609c43e4e26e149ac191cb..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-gray-line.gif b/src/public/images/treeview-gray-line.gif
deleted file mode 100644
index 37600447dc002bbc0dd16e1391b711360aae2e34..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-gray.gif b/src/public/images/treeview-gray.gif
deleted file mode 100644
index cfb8a2f0961b880d9ecc9e59f831d0c0bf9d06db..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-red-line.gif b/src/public/images/treeview-red-line.gif
deleted file mode 100644
index df9e749a8f1f58862588efc64988003efad01d51..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/images/treeview-red.gif b/src/public/images/treeview-red.gif
deleted file mode 100644
index 3bbb3a157f1568d59d6db02b55a3b3fe9a1ff7a7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/flexigrid.js b/src/public/javascripts/flexigrid.js
deleted file mode 100644
index 3715e6f..0000000
--- a/src/public/javascripts/flexigrid.js
+++ /dev/null
@@ -1,1471 +0,0 @@
-/*
- * Flexigrid for jQuery - New Wave Grid
- *
- * Copyright (c) 2008 Paulo P. Marinas (webplicity.net/flexigrid)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-04-01 00:09:43 +0800 (Tue, 01 Apr 2008) $
- */
- 
-(function($){
-		  
-	$.addFlex = function(t,p)
-	{
-
-		if (t.grid) return false; //return if already exist	
-		
-		// apply default properties
-		p = $.extend({
-			 height: 'auto', //default height
-			 width: 'auto', //auto width
-			 striped: true, //apply odd even stripes
-			 novstripe: false,
-			 minwidth: 30, //min width of columns
-			 minheight: 100, //min height of columns
-			 resizable: true, //resizable table
-			 url: false, //ajax url
-			 method: 'POST', // data sending method
-			 dataType: 'xml', // type of data loaded
-			 errormsg: 'Connection Error',
-			 usepager: false, //
-			 nowrap: true, //
-			 page: 1, //current page
-			 total: 1, //total pages
-			 useRp: true, //use the results per page select box
-			 rp: 15, // results per page
-			 rpOptions: [10,15,20,25,40],
-			 title: false,
-			 pagestat: 'Displaying {from} to {to} of {total} items',
-			 procmsg: 'Processing, please wait ...',
-			 query: '',
-			 qtype: '',
-			 nomsg: 'No items',
-			 minColToggle: 1, //minimum allowed column to be hidden
-			 showToggleBtn: true, //show or hide column toggle popup
-			 hideOnSubmit: true,
-			 autoload: true,
-			 blockOpacity: 0.5,
-			 onToggleCol: false,
-			 onChangeSort: false,
-			 onSuccess: false,
-			 onSelect: false,
-			 onDeselect: false,
-             onHover: false,
-             onUnhover: false,
-			 onSubmit: false, // using a custom populate function
-			 multiselect: false  // allow selection of multiple elements
-		  }, p);
-		  		
-
-		$(t)
-		.show() //show if hidden
-		.attr({cellPadding: 0, cellSpacing: 0, border: 0})  //remove padding and spacing
-		.removeAttr('width') //remove width properties	
-		;
-		
-		//create grid class
-		var g = {
-			hset : {},
-			rePosDrag: function () {
-
-			var cdleft = 0 - this.hDiv.scrollLeft;
-			if (this.hDiv.scrollLeft>0) cdleft -= Math.floor(p.cgwidth/2);
-			$(g.cDrag).css({top:g.hDiv.offsetTop+1});
-			var cdpad = this.cdpad;
-			
-			$('div',g.cDrag).hide();
-			
-			$('thead tr:first th:visible',this.hDiv).each
-				(
-			 	function ()
-					{
-					var n = $('thead tr:first th:visible',g.hDiv).index(this);
-
-					var cdpos = parseInt($('div',this).width());
-					var ppos = cdpos;
-					if (cdleft==0) 
-							cdleft -= Math.floor(p.cgwidth/2); 
-
-					cdpos = cdpos + cdleft + cdpad;
-					
-					$('div:eq('+n+')',g.cDrag).css({'left':cdpos+'px'}).show();
-
-					cdleft = cdpos;
-					}
-				);
-				
-			},
-			fixHeight: function (newH) {
-				
-					if (!newH) newH = $(g.bDiv).height();
-					var hdHeight = $(this.hDiv).height();
-					$('div',this.cDrag).each(
-						function ()
-							{
-								$(this).height(newH+hdHeight);
-							}
-					);
-					$(g.block).css({height:newH,marginBottom:(newH * -1)});
-					
-					var hrH = g.bDiv.offsetTop + newH;
-					if (p.height != 'auto' && p.resizable) hrH = g.vDiv.offsetTop;
-					$(g.rDiv).css({height: hrH});
-				
-			},
-			dragStart: function (dragtype,e,obj) { //default drag function start
-				
-				if (dragtype=='colresize') //column resize
-					{
-						$(g.nDiv).hide();$(g.nBtn).hide();
-						var n = $('div',this.cDrag).index(obj);
-						var ow = $('th:visible div:eq('+n+')',this.hDiv).width();
-						$(obj).addClass('dragging').siblings().hide();
-						$(obj).prev().addClass('dragging').show();
-						
-						this.colresize = {startX: e.pageX, ol: parseInt(obj.style.left), ow: ow, n : n };
-						$('body').css('cursor','col-resize');
-					}
-				else if (dragtype=='vresize') //table resize
-					{
-						var hgo = false;
-						$('body').css('cursor','row-resize');
-						if (obj) 
-							{
-							hgo = true;
-							$('body').css('cursor','col-resize');
-							}
-						this.vresize = {h: p.height, sy: e.pageY, w: p.width, sx: e.pageX, hgo: hgo};
-						
-					}
-				else if (dragtype=='colMove') //column header drag
-					{
-						$(g.nDiv).hide();$(g.nBtn).hide();
-						this.hset = $(this.hDiv).offset();
-						this.hset.right = this.hset.left + $('table',this.hDiv).width();
-						this.hset.bottom = this.hset.top + $('table',this.hDiv).height();
-						this.dcol = obj;
-						this.dcoln = $('th',this.hDiv).index(obj);
-						
-						this.colCopy = document.createElement("div");
-						this.colCopy.className = "colCopy";
-						this.colCopy.innerHTML = obj.innerHTML;
-						if ($.browser.msie)
-						{
-						this.colCopy.className = "colCopy ie";
-						}
-						
-						
-						$(this.colCopy).css({position:'absolute',float:'left',display:'none', textAlign: obj.align});
-						$('body').append(this.colCopy);
-						$(this.cDrag).hide();
-						
-					}
-														
-				$('body').noSelect();
-			
-			},
-			dragMove: function (e) {
-			
-				if (this.colresize) //column resize
-					{
-						var n = this.colresize.n;
-						var diff = e.pageX-this.colresize.startX;
-						var nleft = this.colresize.ol + diff;
-						var nw = this.colresize.ow + diff;
-						if (nw > p.minwidth)
-							{
-								$('div:eq('+n+')',this.cDrag).css('left',nleft);
-								this.colresize.nw = nw;
-							}
-					}
-				else if (this.vresize) //table resize
-					{
-						var v = this.vresize;
-						var y = e.pageY;
-						var diff = y-v.sy;
-						
-						if (!p.defwidth) p.defwidth = p.width;
-						
-						if (p.width != 'auto' && !p.nohresize && v.hgo)
-						{
-							var x = e.pageX;
-							var xdiff = x - v.sx;
-							var newW = v.w + xdiff;
-							if (newW > p.defwidth)
-								{
-									this.gDiv.style.width = newW + 'px';
-									p.width = newW;
-								}
-						}
-						
-						var newH = v.h + diff;
-						if ((newH > p.minheight || p.height < p.minheight) && !v.hgo)
-							{
-								this.bDiv.style.height = newH + 'px';
-								p.height = newH;
-								this.fixHeight(newH);
-							}
-						v = null;
-					}
-				else if (this.colCopy) {
-					$(this.dcol).addClass('thMove').removeClass('thOver'); 
-					if (e.pageX > this.hset.right || e.pageX < this.hset.left || e.pageY > this.hset.bottom || e.pageY < this.hset.top)
-					{
-						//this.dragEnd();
-						$('body').css('cursor','move');
-					}
-					else 
-					$('body').css('cursor','pointer');
-					$(this.colCopy).css({top:e.pageY + 10,left:e.pageX + 20, display: 'block'});
-				}													
-			
-			},
-			dragEnd: function () {
-
-				if (this.colresize)
-					{
-						var n = this.colresize.n;
-						var nw = this.colresize.nw;
-
-								$('th:visible div:eq('+n+')',this.hDiv).css('width',nw);
-								$('tr',this.bDiv).each (
-									function ()
-										{
-										$('td:visible div:eq('+n+')',this).css('width',nw);
-										}
-								);
-								this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-
-
-						$('div:eq('+n+')',this.cDrag).siblings().show();
-						$('.dragging',this.cDrag).removeClass('dragging');
-						this.rePosDrag();
-						this.colresize = false;
-					}
-				else if (this.vresize)
-					{
-						this.vresize = false;
-					}
-				else if (this.colCopy)
-					{
-						$(this.colCopy).remove();
-						if (this.dcolt != null)
-							{
-							
-							
-							if (this.dcoln>this.dcolt)
-								
-								$('th:eq('+this.dcolt+')',this.hDiv).before(this.dcol);
-							else
-								$('th:eq('+this.dcolt+')',this.hDiv).after(this.dcol);
-							
-							
-							
-							this.switchCol(this.dcoln,this.dcolt);
-							$(this.cdropleft).remove();
-							$(this.cdropright).remove();
-							this.rePosDrag();
-							
-																			
-							}
-						
-						this.dcol = null;
-						this.hset = null;
-						this.dcoln = null;
-						this.dcolt = null;
-						this.colCopy = null;
-						
-						$('.thMove',this.hDiv).removeClass('thMove');
-						$(this.cDrag).show();
-					}										
-				$('body').css('cursor','default');
-				$('body').noSelect(false);
-			},
-			toggleCol: function(cid,visible) {
-				
-				var ncol = $("th[axis='col"+cid+"']",this.hDiv)[0];
-				var n = $('thead th',g.hDiv).index(ncol);
-				var cb = $('input[value='+cid+']',g.nDiv)[0];
-				
-				
-				if (visible==null)
-					{
-						visible = ncol.hide;
-					}
-				
-				
-				
-				if ($('input:checked',g.nDiv).length<p.minColToggle&&!visible) return false;
-				
-				if (visible)
-					{
-						ncol.hide = false;
-						$(ncol).show();
-						cb.checked = true;
-					}
-				else
-					{
-						ncol.hide = true;
-						$(ncol).hide();
-						cb.checked = false;
-					}
-					
-						$('tbody tr',t).each
-							(
-								function ()
-									{
-										if (visible)
-											$('td:eq('+n+')',this).show();
-										else
-											$('td:eq('+n+')',this).hide();
-									}
-							);							
-				
-				this.rePosDrag();
-				
-				if (p.onToggleCol) p.onToggleCol(cid,visible);
-				
-				return visible;
-			},
-			switchCol: function(cdrag,cdrop) { //switch columns
-				
-				$('tbody tr',t).each
-					(
-						function ()
-							{
-								if (cdrag>cdrop)
-									$('td:eq('+cdrop+')',this).before($('td:eq('+cdrag+')',this));
-								else
-									$('td:eq('+cdrop+')',this).after($('td:eq('+cdrag+')',this));
-							}
-					);
-					
-					//switch order in nDiv
-					if (cdrag>cdrop)
-						$('tr:eq('+cdrop+')',this.nDiv).before($('tr:eq('+cdrag+')',this.nDiv));
-					else
-						$('tr:eq('+cdrop+')',this.nDiv).after($('tr:eq('+cdrag+')',this.nDiv));
-						
-					if ($.browser.msie&&$.browser.version<7.0) $('tr:eq('+cdrop+') input',this.nDiv)[0].checked = true;	
-					
-					this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-			},			
-			scroll: function() {
-					this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-					this.rePosDrag();
-			},
-			addData: function (data) { //parse data
-				
-				$('.pReload',this.pDiv).removeClass('loading');
-				this.loading = false;
-
-				if (!data) 
-					{
-					$('.pPageStat',this.pDiv).html(p.errormsg);	
-					return false;
-					}
-
-				if (p.dataType=='xml')
-					p.total = +$('rows total',data).text();
-				else
-					p.total = data.total;
-					
-				if (p.total==0)
-					{
-					$('tr',t).unbind();
-					$(t).empty();
-					p.pages = 1;
-					p.page = 1;
-					this.buildpager();
-					$('.pPageStat',this.pDiv).html(p.nomsg);
-					return false;
-					}
-				
-				p.pages = Math.ceil(p.total/p.rp);
-				
-				if (p.dataType=='xml')
-					p.page = +$('rows page',data).text();
-				else
-					p.page = data.page;
-				
-				this.buildpager();
-
-				//build new body
-				var tbody = document.createElement('tbody');
-				
-				if (p.dataType=='json')
-				{
-					$.each
-					(
-					 data.rows,
-					 function(i,row) 
-					 	{
-							var tr = document.createElement('tr');
-							if (i % 2 && p.striped) tr.className = 'erow';
-							
-							if (row.id) tr.id = 'row' + row.id;
-							
-							//add cell
-							$('thead tr:first th',g.hDiv).each
-							(
-							 	function ()
-									{
-										
-										var td = document.createElement('td');
-										var idx = $(this).attr('axis').substr(3);
-										td.align = this.align;
-										td.innerHTML = row.cell[idx];
-										$(tr).append(td);
-										td = null;
-									}
-							);
-							
-							if ($('thead',this.gDiv).length<1) //handle if grid has no headers
-							{
-
-									for (idx=0;idx<cell.length;idx++)
-										{
-										var td = document.createElement('td');
-										td.innerHTML = row.cell[idx];
-										$(tr).append(td);
-										td = null;
-										}
-							}							
-							
-							$(tbody).append(tr);
-							tr = null;
-						}
-					);				
-					
-				} else if (p.dataType=='xml') {
-
-				i = 1;
-
-				$("rows row",data).each
-				(
-				 
-				 	function ()
-						{
-							
-							i++;
-							
-							var tr = document.createElement('tr');
-							if (i % 2 && p.striped) tr.className = 'erow';
-
-							var nid =$(this).attr('id');
-							if (nid) tr.id = 'row' + nid;
-							
-							nid = null;
-							
-							var robj = this;
-
-							
-							
-							$('thead tr:first th',g.hDiv).each
-							(
-							 	function ()
-									{
-										
-										var td = document.createElement('td');
-										var idx = $(this).attr('axis').substr(3);
-										td.align = this.align;
-										td.innerHTML = $("cell:eq("+ idx +")",robj).text();
-										$(tr).append(td);
-										td = null;
-									}
-							);
-							
-							
-							if ($('thead',this.gDiv).length<1) //handle if grid has no headers
-							{
-								$('cell',this).each
-								(
-								 	function ()
-										{
-										var td = document.createElement('td');
-										td.innerHTML = $(this).text();
-										$(tr).append(td);
-										td = null;
-										}
-								);
-							}
-							
-							$(tbody).append(tr);
-							tr = null;
-							robj = null;
-						}
-				);
-				
-				}
-
-				$('tr',t).unbind();
-				$(t).empty();
-				
-				$(t).append(tbody);
-				this.addCellProp();
-				this.addRowProp();
-				
-				this.fixHeight($(this.bDiv).height());
-				
-				this.rePosDrag();
-				
-				tbody = null; data = null; i = null; 
-				
-				if (p.onSuccess) p.onSuccess();
-				if (p.hideOnSubmit) $(g.block).remove();//$(t).show();
-				
-				this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-				if ($.browser.opera) $(t).css('visibility','visible');
-				
-			},
-			changeSort: function(th) { //change sortorder
-			
-				if (this.loading) return true;
-				
-				$(g.nDiv).hide();$(g.nBtn).hide();
-				
-				if (p.sortname == $(th).attr('abbr'))
-					{
-						if (p.sortorder=='asc') p.sortorder = 'desc'; 
-						else p.sortorder = 'asc';						
-					}
-				
-				$(th).addClass('sorted').siblings().removeClass('sorted');
-				$('.sdesc',this.hDiv).removeClass('sdesc');
-				$('.sasc',this.hDiv).removeClass('sasc');
-				$('div',th).addClass('s'+p.sortorder);
-				p.sortname= $(th).attr('abbr');
-				
-				if (p.onChangeSort)
-					p.onChangeSort(p.sortname,p.sortorder);
-				else
-					this.populate();				
-			
-			},
-			buildpager: function(){ //rebuild pager based on new properties
-			
-			$('.pcontrol input').val(p.page);
-			$('.pcontrol span').html(p.pages);
-			
-			var r1 = (p.page-1) * p.rp + 1; 
-			var r2 = r1 + p.rp - 1; 
-			
-			if (p.total<r2) r2 = p.total;
-			
-			var stat = p.pagestat;
-			
-			stat = stat.replace(/{from}/,r1);
-			stat = stat.replace(/{to}/,r2);
-			stat = stat.replace(/{total}/,p.total);
-			
-			$('.pPageStat',this.pDiv).html(stat);
-			
-			},
-			populate: function () { //get latest data
-
-				if (this.loading) return true;
-
-				if (p.onSubmit)
-					{
-						var gh = p.onSubmit();
-						if (!gh) return false;
-					}
-
-				this.loading = true;
-				if (!p.url) return false;
-				
-				$('.pPageStat',this.pDiv).html(p.procmsg);
-				
-				$('.pReload',this.pDiv).addClass('loading');
-				
-				$(g.block).css({top:g.bDiv.offsetTop});
-				
-				if (p.hideOnSubmit) $(this.gDiv).prepend(g.block); //$(t).hide();
-				
-				if ($.browser.opera) $(t).css('visibility','hidden');
-				
-				if (!p.newp) p.newp = 1;
-				
-				if (p.page>p.pages) p.page = p.pages;
-				var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype};
-
-				if (p.params)
-					{
-						var nparam = {};
-						$.each(p.params, function() {
-						  nparam[this.name] = this.value;
-						});
-						$.extend(param,nparam);
-					}
-				
-				$.ajax({
-				   type: p.method,
-				   url: p.url,
-				   data: param,
-				   dataType: p.dataType,
-				   success: function(data){g.addData(data);}
-				 });				
-			},
-			doSearch: function () {
-				p.query = $('input[name=q]',g.sDiv).val();
-				p.qtype = $('select[name=qtype]',g.sDiv).val();
-				p.newp = 1;
-				this.populate();				
-			},
-			changePage: function (ctype){ //change page
-			
-				if (this.loading) return true;
-			
-				switch(ctype)
-				{
-					case 'first': p.newp = 1; break;
-					case 'prev': if (p.page>1) p.newp = p.page - 1; break;
-					case 'next': if (p.page<p.pages) p.newp = p.page + 1; break;
-					case 'last': p.newp = p.pages; break;
-					case 'input': 
-							var nv = parseInt($('.pcontrol input').val());
-							if (isNaN(nv)) nv = 1;
-							if (nv<1) nv = 1;
-							else if (nv > p.pages) nv = p.pages;
-							$('.pcontrol input').val(nv);
-							p.newp =nv;
-							break;
-				}
-			
-				if (p.newp==p.page) return false;
-				
-				if (p.onChangePage) 
-					p.onChangePage(p.newp);
-				else				
-					this.populate();
-			
-			},
-			addCellProp: function ()
-			{
-				
-					$('tbody tr td',g.bDiv).each
-					(
-						function ()
-							{
-									var tdDiv = document.createElement('div');
-									var n = $('td',$(this).parent()).index(this);
-									var pth = $('th:eq('+n+')',g.hDiv).get(0);
-			
-									if (pth!=null)
-									{
-									if (p.sortname==$(pth).attr('abbr')&&p.sortname) 
-										{
-										this.className = 'sorted';
-										}
-									 $(tdDiv).css({textAlign:pth.align,width: $('div:first',pth)[0].style.width});
-									 
-									 if (pth.hide) $(this).css('display','none');
-									 
-									 }
-									 
-									 if (p.nowrap==false) $(tdDiv).css('white-space','normal');
-									 
-									 if (this.innerHTML=='') this.innerHTML = '&nbsp;';
-									 
-									 //tdDiv.value = this.innerHTML; //store preprocess value
-									 tdDiv.innerHTML = this.innerHTML;
-									 
-									 var prnt = $(this).parent()[0];
-									 var pid = false;
-									 if (prnt.id) pid = prnt.id.substr(3);
-									 
-									 if (pth!=null)
-									 {
-									 if (pth.process) pth.process(tdDiv,pid);
-									 }
-									 
-									$(this).empty().append(tdDiv).removeAttr('width'); //wrap content
-
-									//add editable event here 'dblclick'
-
-							}
-					);
-					
-			},
-			getCellDim: function (obj) // get cell prop for editable event
-			{
-				var ht = parseInt($(obj).height());
-				var pht = parseInt($(obj).parent().height());
-				var wt = parseInt(obj.style.width);
-				var pwt = parseInt($(obj).parent().width());
-				var top = obj.offsetParent.offsetTop;
-				var left = obj.offsetParent.offsetLeft;
-				var pdl = parseInt($(obj).css('paddingLeft'));
-				var pdt = parseInt($(obj).css('paddingTop'));
-				return {ht:ht,wt:wt,top:top,left:left,pdl:pdl, pdt:pdt, pht:pht, pwt: pwt};
-			},
-			addRowProp: function()
-			{
-					$('tbody tr',g.bDiv).each
-					(
-						function ()
-							{
-							$(this)
-							.click(
-								function (e) 
-									{ 
-									    var obj = (e.target || e.srcElement); if (obj.href || obj.type) return true;
-									    if ( p.multiselect == false ) {
-										    $(t).find("tr.trSelected:not(#" + this.id + ")").each(function(){
-									            if (p.onDeselect) p.onDeselect(this);
-                                                $(this).removeClass('trSelected');
-                                             });
-									    } 
-                                        $(this).toggleClass('trSelected');
-                                        if($(this).hasClass('trSelected')){
-                                            if (p.onSelect) p.onSelect($(t).find("tr.trSelected"));
-                                        } else {
-                                            if (p.onDeselect) p.onDeselect(this);
-                                        }
-									}
-							)
-							.mousedown(
-								function (e)
-									{
-										if (e.shiftKey)
-										{
-										$(this).toggleClass('trSelected'); 
-										g.multisel = true; 
-										this.focus();
-										$(g.gDiv).noSelect();
-										}
-									}
-							)
-							.mouseup(
-								function ()
-									{
-										if (g.multisel)
-										{
-										g.multisel = false;
-										$(g.gDiv).noSelect(false);
-										}
-									}
-							)
-							.hover(
-								function (e) 
-									{ 
-                                    if(p.onHover) p.onHover(this);
-									if (g.multisel) 
-										{
-										$(this).toggleClass('trSelected'); 
-										}
-									},
-								function () {
-                                    if(p.onUnhover) p.onUnhover(this);
-                                }						
-							)
-							;
-							
-							if ($.browser.msie&&$.browser.version<7.0)
-								{
-									$(this)
-									.hover(
-										function () { $(this).addClass('trOver'); },
-										function () { $(this).removeClass('trOver'); }
-									)
-									;
-								}
-							}
-					);
-					
-					
-			},
-			pager: 0
-			};		
-		
-		//create model if any
-		if (p.colModel)
-		{
-			thead = document.createElement('thead');
-			tr = document.createElement('tr');
-			
-			for (i in p.colModel)
-				{
-					var cm = p.colModel[i];
-					var th = document.createElement('th');
-
-					th.innerHTML = cm.display;
-					
-					if (cm.name)
-						$(th).attr('abbr',cm.name);
-					
-					//th.idx = i;
-					$(th).attr('axis','col'+i);
-					
-					if (cm.align)
-						th.align = cm.align;
-						
-					if (cm.width) 
-						$(th).attr('width',cm.width);
-
-					if (cm.hide)
-						{
-						th.hide = true;
-						}
-						
-					if (cm.process)
-						{
-							th.process = cm.process;
-						}
-
-					$(tr).append(th);
-				}
-			$(thead).append(tr);
-			$(t).prepend(thead);
-		} // end if p.colmodel	
-
-		//init divs
-		g.gDiv = document.createElement('div'); //create global container
-		g.mDiv = document.createElement('div'); //create title container
-		g.hDiv = document.createElement('div'); //create header container
-		g.bDiv = document.createElement('div'); //create body container
-		g.vDiv = document.createElement('div'); //create grip
-		g.rDiv = document.createElement('div'); //create horizontal resizer
-		g.cDrag = document.createElement('div'); //create column drag
-		g.block = document.createElement('div'); //creat blocker
-		g.nDiv = document.createElement('div'); //create column show/hide popup
-		g.nBtn = document.createElement('div'); //create column show/hide button
-		g.iDiv = document.createElement('div'); //create editable layer
-		g.tDiv = document.createElement('div'); //create toolbar
-		g.sDiv = document.createElement('div');
-		
-		if (p.usepager) g.pDiv = document.createElement('div'); //create pager container
-		g.hTable = document.createElement('table');
-
-		//set gDiv
-		g.gDiv.className = 'flexigrid';
-		if (p.width!='auto') g.gDiv.style.width = p.width + 'px';
-
-		//add conditional classes
-		if ($.browser.msie)
-			$(g.gDiv).addClass('ie');
-		
-		if (p.novstripe)
-			$(g.gDiv).addClass('novstripe');
-
-		$(t).before(g.gDiv);
-		$(g.gDiv)
-		.append(t)
-		;
-
-		//set toolbar
-		if (p.buttons) 
-		{
-			g.tDiv.className = 'tDiv';
-			var tDiv2 = document.createElement('div');
-			tDiv2.className = 'tDiv2';
-			
-			for (i in p.buttons)
-				{
-					var btn = p.buttons[i];
-					if (!btn.separator)
-					{
-						var btnDiv = document.createElement('div');
-						btnDiv.className = 'fbutton';
-						btnDiv.innerHTML = "<div><span>"+btn.name+"</span></div>";
-						if (btn.bclass) 
-							$('span',btnDiv)
-							.addClass(btn.bclass)
-							.css({paddingLeft:20})
-							;
-						btnDiv.onpress = btn.onpress;
-						btnDiv.name = btn.name;
-						if (btn.onpress)
-						{
-							$(btnDiv).click
-							(	
-								function () 
-								{
-								this.onpress(this.name,g.gDiv);
-								}
-							);
-						}
-						$(tDiv2).append(btnDiv);
-						if ($.browser.msie&&$.browser.version<7.0)
-						{
-							$(btnDiv).hover(function(){$(this).addClass('fbOver');},function(){$(this).removeClass('fbOver');});
-						}
-						
-					} else {
-						$(tDiv2).append("<div class='btnseparator'></div>");
-					}
-				}
-				$(g.tDiv).append(tDiv2);
-				$(g.tDiv).append("<div style='clear:both'></div>");
-				$(g.gDiv).prepend(g.tDiv);
-		}
-		
-		//set hDiv
-		g.hDiv.className = 'hDiv';
-
-		$(t).before(g.hDiv);
-
-		//set hTable
-			g.hTable.cellPadding = 0;
-			g.hTable.cellSpacing = 0;
-			$(g.hDiv).append('<div class="hDivBox"></div>');
-			$('div',g.hDiv).append(g.hTable);
-			var thead = $("thead:first",t).get(0);
-			if (thead) $(g.hTable).append(thead);
-			thead = null;
-		
-		if (!p.colmodel) var ci = 0;
-
-		//setup thead			
-			$('thead tr:first th',g.hDiv).each
-			(
-			 	function ()
-					{
-						var thdiv = document.createElement('div');
-						
-						
-					
-						if ($(this).attr('abbr'))
-							{
-							$(this).click(
-								function (e) 
-									{
-										
-										if (!$(this).hasClass('thOver')) return false;
-										var obj = (e.target || e.srcElement);
-										if (obj.href || obj.type) return true; 
-										g.changeSort(this);
-									}
-							)
-							;
-							
-							if ($(this).attr('abbr')==p.sortname)
-								{
-								this.className = 'sorted';
-								thdiv.className = 's'+p.sortorder;
-								}
-							}
-							
-							if (this.hide) $(this).hide();
-							
-							if (!p.colmodel)
-							{
-								$(this).attr('axis','col' + ci++);
-							}
-							
-							
-						 $(thdiv).css({textAlign:this.align, width: this.width + 'px'});
-						 thdiv.innerHTML = this.innerHTML;
-						 
-						$(this).empty().append(thdiv).removeAttr('width')
-						.mousedown(function (e) {g.dragStart('colMove',e,this)})
-						.hover(
-							function(){
-								if (!g.colresize&&!$(this).hasClass('thMove')&&!g.colCopy) $(this).addClass('thOver');
-								
-								if ($(this).attr('abbr')!=p.sortname&&!g.colCopy&&!g.colresize&&$(this).attr('abbr')) $('div',this).addClass('s'+p.sortorder);
-								else if ($(this).attr('abbr')==p.sortname&&!g.colCopy&&!g.colresize&&$(this).attr('abbr'))
-									{
-										var no = '';
-										if (p.sortorder=='asc') no = 'desc';
-										else no = 'asc';
-										$('div',this).removeClass('s'+p.sortorder).addClass('s'+no);
-									}
-								
-								if (g.colCopy) 
-									{
-									var n = $('th',g.hDiv).index(this);
-									
-									if (n==g.dcoln) return false;
-									
-									
-									
-									if (n<g.dcoln) $(this).append(g.cdropleft);
-									else $(this).append(g.cdropright);
-									
-									g.dcolt = n;
-									
-									} else if (!g.colresize) {
-										
-									var nv = $('th:visible',g.hDiv).index(this);
-									var onl = parseInt($('div:eq('+nv+')',g.cDrag).css('left'));
-									var nw = parseInt($(g.nBtn).width()) + parseInt($(g.nBtn).css('borderLeftWidth'));
-									nl = onl - nw + Math.floor(p.cgwidth/2);
-									
-									$(g.nDiv).hide();$(g.nBtn).hide();
-									
-									$(g.nBtn).css({'left':nl,top:g.hDiv.offsetTop}).show();
-									
-									var ndw = parseInt($(g.nDiv).width());
-									
-									$(g.nDiv).css({top:g.bDiv.offsetTop});
-									
-									if ((nl+ndw)>$(g.gDiv).width())
-										$(g.nDiv).css('left',onl-ndw+1);
-									else
-										$(g.nDiv).css('left',nl);
-										
-									if ($(this).hasClass('sorted')) 
-										$(g.nBtn).addClass('srtd');
-									else
-										$(g.nBtn).removeClass('srtd');
-										
-									}
-									
-							},
-							function(){
-								$(this).removeClass('thOver');
-								if ($(this).attr('abbr')!=p.sortname) $('div',this).removeClass('s'+p.sortorder);
-								else if ($(this).attr('abbr')==p.sortname)
-									{
-										var no = '';
-										if (p.sortorder=='asc') no = 'desc';
-										else no = 'asc';
-										
-										$('div',this).addClass('s'+p.sortorder).removeClass('s'+no);
-									}
-								if (g.colCopy) 
-									{								
-									$(g.cdropleft).remove();
-									$(g.cdropright).remove();
-									g.dcolt = null;
-									}
-							})
-						; //wrap content
-					}
-			);
-
-		//set bDiv
-		g.bDiv.className = 'bDiv';
-		$(t).before(g.bDiv);
-		$(g.bDiv)
-		.css({ height: (p.height=='auto') ? 'auto' : p.height+"px"})
-		.scroll(function (e) {g.scroll()})
-		.append(t)
-		;
-		
-		if (p.height == 'auto') 
-			{
-			$('table',g.bDiv).addClass('autoht');
-			}
-
-
-		//add td properties
-		g.addCellProp();
-		
-		//add row properties
-		g.addRowProp();
-		
-		//set cDrag
-		
-		var cdcol = $('thead tr:first th:first',g.hDiv).get(0);
-		
-		if (cdcol != null)
-		{		
-		g.cDrag.className = 'cDrag';
-		g.cdpad = 0;
-		
-		g.cdpad += (isNaN(parseInt($('div',cdcol).css('borderLeftWidth'))) ? 0 : parseInt($('div',cdcol).css('borderLeftWidth'))); 
-		g.cdpad += (isNaN(parseInt($('div',cdcol).css('borderRightWidth'))) ? 0 : parseInt($('div',cdcol).css('borderRightWidth'))); 
-		g.cdpad += (isNaN(parseInt($('div',cdcol).css('paddingLeft'))) ? 0 : parseInt($('div',cdcol).css('paddingLeft'))); 
-		g.cdpad += (isNaN(parseInt($('div',cdcol).css('paddingRight'))) ? 0 : parseInt($('div',cdcol).css('paddingRight'))); 
-		g.cdpad += (isNaN(parseInt($(cdcol).css('borderLeftWidth'))) ? 0 : parseInt($(cdcol).css('borderLeftWidth'))); 
-		g.cdpad += (isNaN(parseInt($(cdcol).css('borderRightWidth'))) ? 0 : parseInt($(cdcol).css('borderRightWidth'))); 
-		g.cdpad += (isNaN(parseInt($(cdcol).css('paddingLeft'))) ? 0 : parseInt($(cdcol).css('paddingLeft'))); 
-		g.cdpad += (isNaN(parseInt($(cdcol).css('paddingRight'))) ? 0 : parseInt($(cdcol).css('paddingRight'))); 
-
-		$(g.bDiv).before(g.cDrag);
-		
-		var cdheight = $(g.bDiv).height();
-		var hdheight = $(g.hDiv).height();
-		
-		$(g.cDrag).css({top: -hdheight + 'px'});
-		
-		$('thead tr:first th',g.hDiv).each
-			(
-			 	function ()
-					{
-						var cgDiv = document.createElement('div');
-						$(g.cDrag).append(cgDiv);
-						if (!p.cgwidth) p.cgwidth = $(cgDiv).width();
-						$(cgDiv).css({height: cdheight + hdheight})
-						.mousedown(function(e){g.dragStart('colresize',e,this);})
-						;
-						if ($.browser.msie&&$.browser.version<7.0)
-						{
-							g.fixHeight($(g.gDiv).height());
-							$(cgDiv).hover(
-								function () 
-								{
-								g.fixHeight();
-								$(this).addClass('dragging') 
-								},
-								function () { if (!g.colresize) $(this).removeClass('dragging') }
-							);
-						}
-					}
-			);
-		
-		g.rePosDrag();
-							
-		}
-		
-
-		//add strip		
-		if (p.striped) 
-			$('tbody tr:odd',g.bDiv).addClass('erow');
-			
-			
-		if (p.resizable && p.height !='auto') 
-		{
-		g.vDiv.className = 'vGrip';
-		$(g.vDiv)
-		.mousedown(function (e) { g.dragStart('vresize',e)})
-		.html('<span></span>');
-		$(g.bDiv).after(g.vDiv);
-		}
-		
-		if (p.resizable && p.width !='auto') 
-		{
-		g.rDiv.className = 'hGrip';
-		$(g.rDiv)
-		.mousedown(function (e) {g.dragStart('vresize',e,true);})
-		.html('<span></span>')
-		.css('height',$(g.gDiv).height())
-		;
-		if ($.browser.msie&&$.browser.version<7.0)
-		{
-			$(g.rDiv).hover(function(){$(this).addClass('hgOver');},function(){$(this).removeClass('hgOver');});
-		}
-		$(g.gDiv).append(g.rDiv);
-		}
-		
-		// add pager
-		if (p.usepager)
-		{
-		g.pDiv.className = 'pDiv';
-		g.pDiv.innerHTML = '<div class="pDiv2"></div>';
-		$(g.bDiv).after(g.pDiv);
-		var html = ' <div class="pGroup"> <div class="pFirst pButton"><span></span></div><div class="pPrev pButton"><span></span></div> </div> <div class="btnseparator"></div> <div class="pGroup"><span class="pcontrol">Page <input type="text" size="4" value="1" /> of <span> 1 </span></span></div> <div class="btnseparator"></div> <div class="pGroup"> <div class="pNext pButton"><span></span></div><div class="pLast pButton"><span></span></div> </div> <div class="btnseparator"></div> <div class="pGroup"> <div class="pReload pButton"><span></span></div> </div> <div class="btnseparator"></div> <div class="pGroup"><span class="pPageStat"></span></div>';
-		$('div',g.pDiv).html(html);
-		
-		$('.pReload',g.pDiv).click(function(){g.populate()});
-		$('.pFirst',g.pDiv).click(function(){g.changePage('first')});
-		$('.pPrev',g.pDiv).click(function(){g.changePage('prev')});
-		$('.pNext',g.pDiv).click(function(){g.changePage('next')});
-		$('.pLast',g.pDiv).click(function(){g.changePage('last')});
-		$('.pcontrol input',g.pDiv).keydown(function(e){if(e.keyCode==13) g.changePage('input')});
-		if ($.browser.msie&&$.browser.version<7) $('.pButton',g.pDiv).hover(function(){$(this).addClass('pBtnOver');},function(){$(this).removeClass('pBtnOver');});
-			
-			if (p.useRp)
-			{
-			var opt = "";
-			for (var nx in p.rpOptions)
-			{
-				if (p.rp == p.rpOptions[nx]) sel = 'selected="selected"'; else sel = '';
-				 opt += "<option value='" + p.rpOptions[nx] + "' " + sel + " >" + p.rpOptions[nx] + "&nbsp;&nbsp;</option>";
-			};
-			$('.pDiv2',g.pDiv).prepend("<div class='pGroup'><select name='rp'>"+opt+"</select></div> <div class='btnseparator'></div>");
-			$('select',g.pDiv).change(
-					function ()
-					{
-						if (p.onRpChange) 
-							p.onRpChange(+this.value);
-						else
-							{
-							p.newp = 1;
-							p.rp = +this.value;
-							g.populate();
-							}
-					}
-				);
-			}
-		
-		//add search button
-		if (p.searchitems)
-			{
-				$('.pDiv2',g.pDiv).prepend("<div class='pGroup'> <div class='pSearch pButton'><span></span></div> </div>  <div class='btnseparator'></div>");
-				$('.pSearch',g.spDiv).click(function(){$(g.sDiv).slideToggle('fast',function(){$('.sDiv:visible input:first',g.gDiv).trigger('focus');});});				
-				//add search box
-				g.sDiv.className = 'sDiv';
-				
-				sitems = p.searchitems;
-				
-				var sopt = "";
-				for (var s = 0; s < sitems.length; s++)
-				{
-					if (p.qtype=='' && sitems[s].isdefault==true)
-					{
-					p.qtype = sitems[s].name;
-					sel = 'selected="selected"';
-					} else sel = '';
-					sopt += "<option value='" + sitems[s].name + "' " + sel + " >" + sitems[s].display + "&nbsp;&nbsp;</option>";						
-				}
-				
-				if (p.qtype=='') p.qtype = sitems[0].name;
-				
-				$(g.sDiv).append("<div class='sDiv2'>Quick Search <input type='text' size='30' name='q' class='qsbox' /> <select name='qtype'>"+sopt+"</select> <input type='button' value='Clear' /></div>");
-
-				$('input[name=q],select[name=qtype]',g.sDiv).keydown(function(e){if(e.keyCode==13) g.doSearch()});
-				$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; g.doSearch(); });
-				$(g.bDiv).after(g.sDiv);				
-				
-			}
-		
-		}
-		$(g.pDiv,g.sDiv).append("<div style='clear:both'></div>");
-	
-		// add title
-		if (p.title)
-		{
-			g.mDiv.className = 'mDiv';
-			g.mDiv.innerHTML = '<div class="ftitle">'+p.title+'</div>';
-			$(g.gDiv).prepend(g.mDiv);
-			if (p.showTableToggleBtn)
-				{
-					$(g.mDiv).append('<div class="ptogtitle" title="Minimize/Maximize Table"><span></span></div>');
-					$('div.ptogtitle',g.mDiv).click
-					(
-					 	function ()
-							{
-								$(g.gDiv).toggleClass('hideBody');
-								$(this).toggleClass('vsble');
-							}
-					);
-				}
-		}
-
-		//setup cdrops
-		g.cdropleft = document.createElement('span');
-		g.cdropleft.className = 'cdropleft';
-		g.cdropright = document.createElement('span');
-		g.cdropright.className = 'cdropright';
-
-		//add block
-		g.block.className = 'gBlock';
-		var gh = $(g.bDiv).height();
-		var gtop = g.bDiv.offsetTop;
-		$(g.block).css(
-		{
-			width: g.bDiv.style.width,
-			height: gh,
-			background: 'white',
-			position: 'relative',
-			marginBottom: (gh * -1),
-			zIndex: 999,
-			top: gtop,
-			left: '0px'
-		}
-		);
-		$(g.block).fadeTo(0,p.blockOpacity);				
-		
-		// add column control
-		if ($('th',g.hDiv).length)
-		{
-			
-			g.nDiv.className = 'nDiv';
-			g.nDiv.innerHTML = "<table cellpadding='0' cellspacing='0'><tbody></tbody></table>";
-			$(g.nDiv).css(
-			{
-				marginBottom: (gh * -1),
-				display: 'none',
-				top: gtop
-			}
-			).noSelect()
-			;
-			
-			var cn = 0;
-			
-			
-			$('th div',g.hDiv).each
-			(
-			 	function ()
-					{
-						var kcol = $("th[axis='col" + cn + "']",g.hDiv)[0];
-						var chk = 'checked="checked"';
-						if (kcol.style.display=='none') chk = '';
-						
-						$('tbody',g.nDiv).append('<tr><td class="ndcol1"><input type="checkbox" '+ chk +' class="togCol" value="'+ cn +'" /></td><td class="ndcol2">'+this.innerHTML+'</td></tr>');
-						cn++;
-					}
-			);
-			
-			if ($.browser.msie&&$.browser.version<7.0)
-				$('tr',g.nDiv).hover
-				(
-				 	function () {$(this).addClass('ndcolover');},
-					function () {$(this).removeClass('ndcolover');}
-				);
-			
-			$('td.ndcol2',g.nDiv).click
-			(
-			 	function ()
-					{
-						if ($('input:checked',g.nDiv).length<=p.minColToggle&&$(this).prev().find('input')[0].checked) return false;
-						return g.toggleCol($(this).prev().find('input').val());
-					}
-			);
-			
-			$('input.togCol',g.nDiv).click
-			(
-			 	function ()
-					{
-						
-						if ($('input:checked',g.nDiv).length<p.minColToggle&&this.checked==false) return false;
-						$(this).parent().next().trigger('click');
-						//return false;
-					}
-			);
-
-
-			$(g.gDiv).prepend(g.nDiv);
-			
-			$(g.nBtn).addClass('nBtn')
-			.html('<div></div>')
-			.attr('title','Hide/Show Columns')
-			.css('top',g.hDiv.offsetTop)
-			.click
-			(
-			 	function ()
-				{
-			 	$(g.nDiv).toggle(); return true;
-				}
-			);
-			
-			if (p.showToggleBtn) $(g.gDiv).prepend(g.nBtn);
-			
-		}
-		
-		// add date edit layer
-		$(g.iDiv)
-		.addClass('iDiv')
-		.css({display:'none'})
-		;
-		$(g.bDiv).append(g.iDiv);
-		
-		// add flexigrid events
-		$(g.bDiv)
-		.hover(function(){$(g.nDiv).hide();$(g.nBtn).hide();},function(){if (g.multisel) g.multisel = false;})
-		;
-		$(g.gDiv)
-		.hover(function(){},function(){$(g.nDiv).hide();$(g.nBtn).hide();})
-		;
-		
-		//add document events
-		$(document)
-		.mousemove(function(e){g.dragMove(e)})
-		.mouseup(function(e){g.dragEnd()})
-		.hover(function(){},function (){g.dragEnd()})
-		;
-		
-		//browser adjustments
-		if ($.browser.msie&&$.browser.version<7.0)
-		{
-			$('.hDiv,.bDiv,.mDiv,.pDiv,.vGrip,.tDiv, .sDiv',g.gDiv)
-			.css({width: '100%'});
-			$(g.gDiv).addClass('ie6');
-			if (p.width!='auto') $(g.gDiv).addClass('ie6fullwidthbug');			
-		} 
-		
-		//make grid functions accessible
-		t.p = p;
-		t.grid = g;
-		
-		// load data
-		if (p.url&&p.autoload) 
-			{
-			g.populate();
-			}
-		
-		return t;		
-			
-	};
-
-	var docloaded = false;
-
-	$(document).ready(function () {docloaded = true} );
-
-	$.fn.flexigrid = function(p) {
-
-		return this.each( function() {
-				if (!docloaded)
-				{
-					$(this).hide();
-					var t = this;
-					$(document).ready
-					(
-						function ()
-						{
-						$.addFlex(t,p);
-						}
-					);
-				} else {
-					$.addFlex(this,p);
-				}
-			});
-
-	}; //end flexigrid
-
-	$.fn.flexReload = function(p) { // function to reload grid
-
-		return this.each( function() {
-				if (this.grid&&this.p.url) this.grid.populate();
-			});
-
-	}; //end flexReload
-
-	$.fn.flexOptions = function(p) { //function to update general options
-
-		return this.each( function() {
-				if (this.grid) $.extend(this.p,p);
-			});
-
-	}; //end flexOptions
-
-	$.fn.flexToggleCol = function(cid,visible) { // function to reload grid
-
-		return this.each( function() {
-				if (this.grid) this.grid.toggleCol(cid,visible);
-			});
-
-	}; //end flexToggleCol
-
-
-	$.fn.noSelect = function(p) { //no select plugin by me :-)
-
-		if (p == null) 
-			prevent = true;
-		else
-			prevent = p;
-
-		if (prevent) {
-		
-		return this.each(function ()
-			{
-				if ($.browser.msie||$.browser.safari) $(this).bind('selectstart',function(){return false;});
-				else if ($.browser.mozilla) 
-					{
-						$(this).css('MozUserSelect','none');
-						$('body').trigger('focus');
-					}
-				else if ($.browser.opera) $(this).bind('mousedown',function(){return false;});
-				else $(this).attr('unselectable','on');
-			});
-			
-		} else {
-
-		
-		return this.each(function ()
-			{
-				if ($.browser.msie||$.browser.safari) $(this).unbind('selectstart');
-				else if ($.browser.mozilla) $(this).css('MozUserSelect','inherit');
-				else if ($.browser.opera) $(this).unbind('mousedown');
-				else $(this).removeAttr('unselectable','on');
-			});
-		
-		}
-
-	}; //end noSelect
-		
-})(jQuery);
diff --git a/src/public/javascripts/flexigrid.pack.js b/src/public/javascripts/flexigrid.pack.js
deleted file mode 100644
index ed75a56..0000000
--- a/src/public/javascripts/flexigrid.pack.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Flexigrid for jQuery - New Wave Grid
- *
- * Copyright (c) 2008 Paulo P. Marinas (webplicity.net/flexigrid)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-04-01 00:09:43 +0800 (Tue, 01 Apr 2008) $
- */
-
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(a($){$.3W=a(t,p){8(t.2c)E o;p=$.4a({G:7a,r:\'1w\',3e:N,4j:o,4R:30,3N:4D,3f:N,2y:o,5i:\'64\',1X:\'3m\',54:\'65 70\',46:o,5o:N,16:1,1j:1,4V:N,1B:15,39:[10,15,20,25,40],2Y:o,5c:\'6P {5d} 3Y {3Y} 5t {1j} 5W\',5e:\'6s, 68 69 ...\',34:\'\',1r:\'\',56:\'6a 5W\',3k:1,5l:N,42:N,5b:N,5V:0.5,3R:o,3S:o,3V:o,41:o},p);$(t).1R().T({5F:0,5G:0,6b:0}).3q(\'r\');b g={1q:{},27:a(){b 2v=0-6.d.1z;8(6.d.1z>0)2v-=3x.4u(p.2M/2);$(g.14).c({1c:g.d.1D+1});b 1i=6.1i;$(\'9\',g.14).J();$(\'U f:1e m:12\',6.d).R(a(){b n=$(\'U f:1e m:12\',g.d).22(6);b 2o=F($(\'9\',6).r());b 6c=2o;8(2v==0)2v-=3x.4u(p.2M/2);2o=2o+2v+1i;$(\'9:S(\'+n+\')\',g.14).c({\'19\':2o+\'1Y\'}).1R();2v=2o})},2O:a(1k){8(!1k)1k=$(g.z).G();b 4L=$(6.d).G();$(\'9\',6.14).R(a(){$(6).G(1k+4L)});$(g.1H).c({G:1k,4B:(1k*-1)});b 3K=g.z.1D+1k;8(p.G!=\'1w\'&&p.3f)3K=g.2P.1D;$(g.2E).c({G:3K})},2Q:a(3g,e,L){8(3g==\'Y\'){$(g.B).J();$(g.18).J();b n=$(\'9\',6.14).22(L);b 3C=$(\'m:12 9:S(\'+n+\')\',6.d).r();$(L).K(\'2m\').4g().J();$(L).2Z().K(\'2m\').1R();6.Y={4H:e.23,55:F(L.1x.19),3C:3C,n:n};$(\'1y\').c(\'2t\',\'2l-3L\')}j 8(3g==\'1L\'){b 2B=o;$(\'1y\').c(\'2t\',\'1C-3L\');8(L){2B=N;$(\'1y\').c(\'2t\',\'2l-3L\')}6.1L={h:p.G,5S:e.38,w:p.r,4W:e.23,2B:2B}}j 8(3g==\'5P\'){$(g.B).J();$(g.18).J();6.1q=$(6.d).6d();6.1q.5x=6.1q.19+$(\'2I\',6.d).r();6.1q.5y=6.1q.1c+$(\'2I\',6.d).G();6.2U=L;6.2s=$(\'m\',6.d).22(L);6.W=l.u("9");6.W.P="W";6.W.11=L.11;8($.H.1h){6.W.P="W 5z"}$(6.W).c({5Q:\'6e\',6f:\'19\',1Q:\'2n\',4q:L.1u});$(\'1y\').D(6.W);$(6.14).J()}$(\'1y\').2G()},5A:a(e){8(6.Y){b n=6.Y.n;b 31=e.23-6.Y.4H;b 4S=6.Y.55+31;b 1A=6.Y.3C+31;8(1A>p.4R){$(\'9:S(\'+n+\')\',6.14).c(\'19\',4S);6.Y.1A=1A}}j 8(6.1L){b v=6.1L;b y=e.38;b 31=y-v.5S;8(!p.3M)p.3M=p.r;8(p.r!=\'1w\'&&!p.6g&&v.2B){b x=e.23;b 4Y=x-v.4W;b 3r=v.w+4Y;8(3r>p.3M){6.I.1x.r=3r+\'1Y\';p.r=3r}}b 1k=v.h+31;8((1k>p.3N||p.G<p.3N)&&!v.2B){6.z.1x.G=1k+\'1Y\';p.G=1k;6.2O(1k)}v=M}j 8(6.W){$(6.2U).K(\'3w\').Z(\'3A\');8(e.23>6.1q.5x||e.23<6.1q.19||e.38>6.1q.5y||e.38<6.1q.1c){$(\'1y\').c(\'2t\',\'6j\')}j $(\'1y\').c(\'2t\',\'6k\');$(6.W).c({1c:e.38+10,19:e.23+20,1Q:\'1H\'})}},4p:a(){8(6.Y){b n=6.Y.n;b 1A=6.Y.1A;$(\'m:12 9:S(\'+n+\')\',6.d).c(\'r\',1A);$(\'f\',6.z).R(a(){$(\'k:12 9:S(\'+n+\')\',6).c(\'r\',1A)});6.d.1z=6.z.1z;$(\'9:S(\'+n+\')\',6.14).4g().1R();$(\'.2m\',6.14).Z(\'2m\');6.27();6.Y=o}j 8(6.1L){6.1L=o}j 8(6.W){$(6.W).2J();8(6.1V!=M){8(6.2s>6.1V)$(\'m:S(\'+6.1V+\')\',6.d).1Z(6.2U);j $(\'m:S(\'+6.1V+\')\',6.d).2p(6.2U);6.5k(6.2s,6.1V);$(6.2D).2J();$(6.2A).2J();6.27()}6.2U=M;6.1q=M;6.2s=M;6.1V=M;6.W=M;$(\'.3w\',6.d).Z(\'3w\');$(6.14).1R()}$(\'1y\').c(\'2t\',\'6l\');$(\'1y\').2G(o)},4m:a(2x,12){b 28=$("m[2k=\'2l"+2x+"\']",6.d)[0];b n=$(\'U m\',g.d).22(28);b 3Q=$(\'Q[1t=\'+2x+\']\',g.B)[0];8(12==M){12=28.J}8($(\'Q:1v\',g.B).1S<p.3k&&!12)E o;8(12){28.J=o;$(28).1R();3Q.1v=N}j{28.J=N;$(28).J();3Q.1v=o}$(\'1a f\',t).R(a(){8(12)$(\'k:S(\'+n+\')\',6).1R();j $(\'k:S(\'+n+\')\',6).J()});6.27();8(p.3R)p.3R(2x,12);E 12},5k:a(21,1T){$(\'1a f\',t).R(a(){8(21>1T)$(\'k:S(\'+1T+\')\',6).1Z($(\'k:S(\'+21+\')\',6));j $(\'k:S(\'+1T+\')\',6).2p($(\'k:S(\'+21+\')\',6))});8(21>1T)$(\'f:S(\'+1T+\')\',6.B).1Z($(\'f:S(\'+21+\')\',6.B));j $(\'f:S(\'+1T+\')\',6.B).2p($(\'f:S(\'+21+\')\',6.B));8($.H.1h&&$.H.1U<7.0)$(\'f:S(\'+1T+\') Q\',6.B)[0].1v=N;6.d.1z=6.z.1z},4C:a(){6.d.1z=6.z.1z;6.27()},5j:a(1f){$(\'.3h\',6.O).Z(\'2b\');6.2b=o;8(!1f){$(\'.2T\',6.O).1s(p.54);E o}8(p.1X==\'3m\')p.1j=+$(\'3n 1j\',1f).2q();j p.1j=1f.1j;8(p.1j==0){$(\'f\',t).3u();$(t).3v();p.1I=1;p.16=1;6.3T();$(\'.2T\',6.O).1s(p.56);E o}p.1I=3x.6n(p.1j/p.1B);8(p.1X==\'3m\')p.16=+$(\'3n 16\',1f).2q();j p.16=1f.16;6.3T();b 1a=l.u(\'1a\');8(p.1X==\'6p\'){$.R(1f.3n,a(i,1C){b f=l.u(\'f\');8(i%2&&p.3e)f.P=\'3J\';8(1C.26)f.26=\'1C\'+1C.26;$(\'U f:1e m\',g.d).R(a(){b k=l.u(\'k\');b 1K=$(6).T(\'2k\').48(3);k.1u=6.1u;k.11=1C.2X[1K];$(f).D(k);k=M});8($(\'U\',6.I).1S<1){2W(1K=0;1K<2X.1S;1K++){b k=l.u(\'k\');k.11=1C.2X[1K];$(f).D(k);k=M}}$(1a).D(f);f=M})}j 8(p.1X==\'3m\'){i=1;$("3n 1C",1f).R(a(){i++;b f=l.u(\'f\');8(i%2&&p.3e)f.P=\'3J\';b 3o=$(6).T(\'26\');8(3o)f.26=\'1C\'+3o;3o=M;b 3U=6;$(\'U f:1e m\',g.d).R(a(){b k=l.u(\'k\');b 1K=$(6).T(\'2k\').48(3);k.1u=6.1u;k.11=$("2X:S("+1K+")",3U).2q();$(f).D(k);k=M});8($(\'U\',6.I).1S<1){$(\'2X\',6).R(a(){b k=l.u(\'k\');k.11=$(6).2q();$(f).D(k);k=M})}$(1a).D(f);f=M;3U=M})}$(\'f\',t).3u();$(t).3v();$(t).D(1a);6.4v();6.3D();6.2O($(6.z).G());6.27();1a=M;1f=M;i=M;8(p.3V)p.3V();8(p.42)$(g.1H).2J();6.d.1z=6.z.1z;8($.H.3p)$(t).c(\'5f\',\'12\')},5L:a(m){8(6.2b)E N;$(g.B).J();$(g.18).J();8(p.1m==$(m).T(\'1l\')){8(p.1d==\'2H\')p.1d=\'4A\';j p.1d=\'2H\'}$(m).K(\'3b\').4g().Z(\'3b\');$(\'.59\',6.d).Z(\'59\');$(\'.5a\',6.d).Z(\'5a\');$(\'9\',m).K(\'s\'+p.1d);p.1m=$(m).T(\'1l\');8(p.3S)p.3S(p.1m,p.1d);j 6.1O()},3T:a(){$(\'.2r Q\').2f(p.16);$(\'.2r C\').1s(p.1I);b 3X=(p.16-1)*p.1B+1;b 3i=3X+p.1B-1;8(p.1j<3i)3i=p.1j;b 1M=p.5c;1M=1M.3Z(/{5d}/,3X);1M=1M.3Z(/{3Y}/,3i);1M=1M.3Z(/{1j}/,p.1j);$(\'.2T\',6.O).1s(1M)},1O:a(){8(6.2b)E N;8(p.41){b 2K=p.41();8(!2K)E o}6.2b=N;8(!p.2y)E o;$(\'.2T\',6.O).1s(p.5e);$(\'.3h\',6.O).K(\'2b\');$(g.1H).c({1c:g.z.1D});8(p.42)$(6.I).1J(g.1H);8($.H.3p)$(t).c(\'5f\',\'6z\');8(!p.1g)p.1g=1;8(p.16>p.1I)p.16=p.1I;b 44={16:p.1g,1B:p.1B,1m:p.1m,1d:p.1d,34:p.34,1r:p.1r};8(p.5g){b 43={};$.R(p.5g,a(){43[6.V]=6.1t});$.4a(44,43)}$.6B({29:p.5i,2y:p.2y,1f:44,1X:p.1X,6C:a(1f){g.5j(1f)}})},4l:a(){p.34=$(\'Q[V=q]\',g.1b).2f();p.1r=$(\'2h[V=1r]\',g.1b).2f();p.1g=1;6.1O()},2F:a(5m){8(6.2b)E N;6F(5m){32\'1e\':p.1g=1;33;32\'2Z\':8(p.16>1)p.1g=p.16-1;33;32\'4s\':8(p.16<p.1I)p.1g=p.16+1;33;32\'4Q\':p.1g=p.1I;33;32\'Q\':b 1n=F($(\'.2r Q\').2f());8(1F(1n))1n=1;8(1n<1)1n=1;j 8(1n>p.1I)1n=p.1I;$(\'.2r Q\').2f(1n);p.1g=1n;33}8(p.1g==p.16)E o;8(p.5n)p.5n(p.1g);j 6.1O()},4v:a(){$(\'1a f k\',g.z).R(a(){b 2C=l.u(\'9\');b n=$(\'k\',$(6).2V()).22(6);b 1G=$(\'m:S(\'+n+\')\',g.d).3E(0);8(1G!=M){8(p.1m==$(1G).T(\'1l\')&&p.1m){6.P=\'3b\'}$(2C).c({4q:1G.1u,r:$(\'9:1e\',1G)[0].1x.r});8(1G.J)$(6).c(\'1Q\',\'2n\')}8(p.5o==o)$(2C).c(\'5O-6H\',\'6I\');8(6.11==\'\')6.11=\'&2S;\';2C.11=6.11;b 47=$(6).2V()[0];b 49=o;8(47.26)49=47.26.48(3);8(1G!=M){8(1G.35)1G.35(2C,49)}$(6).3v().D(2C).3q(\'r\')})},6K:a(L){b 4b=F($(L).G());b 4e=F($(L).2V().G());b 4n=F(L.1x.r);b 4f=F($(L).2V().r());b 1c=L.5s.1D;b 19=L.5s.6L;b 4c=F($(L).c(\'2j\'));b 4h=F($(L).c(\'6M\'));E{4b:4b,4n:4n,1c:1c,19:19,4c:4c,4h:4h,4e:4e,4f:4f}},3D:a(){$(\'1a f\',g.z).R(a(){$(6).17(a(e){b L=(e.5H||e.5J);8(L.5K||L.29)E N;$(6).36(\'4r\')}).2e(a(e){8(e.6N){$(6).36(\'4r\');g.2z=N;6.4y();$(g.I).2G()}}).5D(a(){8(g.2z){g.2z=o;$(g.I).2G(o)}}).1o(a(e){8(g.2z){$(6).36(\'4r\')}},a(){});8($.H.1h&&$.H.1U<7.0){$(6).1o(a(){$(6).K(\'5w\')},a(){$(6).Z(\'5w\')})}})},6R:0};8(p.4i){U=l.u(\'U\');f=l.u(\'f\');2W(i 4o p.4i){b 1p=p.4i[i];b m=l.u(\'m\');m.11=1p.1Q;8(1p.V)$(m).T(\'1l\',1p.V);$(m).T(\'2k\',\'2l\'+i);8(1p.1u)m.1u=1p.1u;8(1p.r)$(m).T(\'r\',1p.r);8(1p.J){m.J=N}8(1p.35){m.35=1p.35}$(f).D(m)}$(U).D(f);$(t).1J(U)}g.I=l.u(\'9\');g.1N=l.u(\'9\');g.d=l.u(\'9\');g.z=l.u(\'9\');g.2P=l.u(\'9\');g.2E=l.u(\'9\');g.14=l.u(\'9\');g.1H=l.u(\'9\');g.B=l.u(\'9\');g.18=l.u(\'9\');g.3t=l.u(\'9\');g.2i=l.u(\'9\');g.1b=l.u(\'9\');8(p.46)g.O=l.u(\'9\');g.37=l.u(\'2I\');g.I.P=\'4P\';8(p.r!=\'1w\')g.I.1x.r=p.r+\'1Y\';8($.H.1h)$(g.I).K(\'5z\');8(p.4j)$(g.I).K(\'4j\');$(t).1Z(g.I);$(g.I).D(t);8(p.4k){g.2i.P=\'2i\';b 2w=l.u(\'9\');2w.P=\'2w\';2W(i 4o p.4k){b 1P=p.4k[i];8(!1P.6X){b 1E=l.u(\'9\');1E.P=\'6Y\';1E.11="<9><C>"+1P.V+"</C></9>";8(1P.5C)$(\'C\',1E).K(1P.5C).c({2j:20});1E.3s=1P.3s;1E.V=1P.V;8(1P.3s){$(1E).17(a(){6.3s(6.V,g.I)})}$(2w).D(1E);8($.H.1h&&$.H.1U<7.0){$(1E).1o(a(){$(6).K(\'5E\')},a(){$(6).Z(\'5E\')})}}j{$(2w).D("<9 A=\'2a\'></9>")}}$(g.2i).D(2w);$(g.2i).D("<9 1x=\'5u:5v\'></9>");$(g.I).1J(g.2i)}g.d.P=\'d\';$(t).1Z(g.d);g.37.5F=0;g.37.5G=0;$(g.d).D(\'<9 A="72"></9>\');$(\'9\',g.d).D(g.37);b U=$("U:1e",t).3E(0);8(U)$(g.37).D(U);U=M;8(!p.5M)b 5N=0;$(\'U f:1e m\',g.d).R(a(){b 2R=l.u(\'9\');8($(6).T(\'1l\')){$(6).17(a(e){8(!$(6).4z(\'3A\'))E o;b L=(e.5H||e.5J);8(L.5K||L.29)E N;g.5L(6)});8($(6).T(\'1l\')==p.1m){6.P=\'3b\';2R.P=\'s\'+p.1d}}8(6.J)$(6).J();8(!p.5M){$(6).T(\'2k\',\'2l\'+5N++)}$(2R).c({4q:6.1u,r:6.r+\'1Y\'});2R.11=6.11;$(6).3v().D(2R).3q(\'r\').2e(a(e){g.2Q(\'5P\',e,6)}).1o(a(){8(!g.Y&&!$(6).4z(\'3w\')&&!g.W)$(6).K(\'3A\');8($(6).T(\'1l\')!=p.1m&&!g.W&&!g.Y&&$(6).T(\'1l\'))$(\'9\',6).K(\'s\'+p.1d);j 8($(6).T(\'1l\')==p.1m&&!g.W&&!g.Y&&$(6).T(\'1l\')){b 1W=\'\';8(p.1d==\'2H\')1W=\'4A\';j 1W=\'2H\';$(\'9\',6).Z(\'s\'+p.1d).K(\'s\'+1W)}8(g.W){b n=$(\'m\',g.d).22(6);8(n==g.2s)E o;8(n<g.2s)$(6).D(g.2D);j $(6).D(g.2A);g.1V=n}j 8(!g.Y){b 1n=$(\'m:12\',g.d).22(6);b 4w=F($(\'9:S(\'+1n+\')\',g.14).c(\'19\'));b 1A=F($(g.18).r())+F($(g.18).c(\'2L\'));3y=4w-1A+3x.4u(p.2M/2);$(g.B).J();$(g.18).J();$(g.18).c({\'19\':3y,1c:g.d.1D}).1R();b 4x=F($(g.B).r());$(g.B).c({1c:g.z.1D});8((3y+4x)>$(g.I).r())$(g.B).c(\'19\',4w-4x+1);j $(g.B).c(\'19\',3y);8($(6).4z(\'3b\'))$(g.18).K(\'5U\');j $(g.18).Z(\'5U\')}},a(){$(6).Z(\'3A\');8($(6).T(\'1l\')!=p.1m)$(\'9\',6).Z(\'s\'+p.1d);j 8($(6).T(\'1l\')==p.1m){b 1W=\'\';8(p.1d==\'2H\')1W=\'4A\';j 1W=\'2H\';$(\'9\',6).K(\'s\'+p.1d).Z(\'s\'+1W)}8(g.W){$(g.2D).2J();$(g.2A).2J();g.1V=M}})});g.z.P=\'z\';$(t).1Z(g.z);$(g.z).c({G:(p.G==\'1w\')?\'1w\':p.G+"1Y"}).4C(a(e){g.4C()}).D(t);8(p.G==\'1w\'){$(\'2I\',g.z).K(\'7e\')}g.4v();g.3D();b X=$(\'U f:1e m:1e\',g.d).3E(0);8(X!=M){g.14.P=\'14\';g.1i=0;g.1i+=(1F(F($(\'9\',X).c(\'2L\')))?0:F($(\'9\',X).c(\'2L\')));g.1i+=(1F(F($(\'9\',X).c(\'3c\')))?0:F($(\'9\',X).c(\'3c\')));g.1i+=(1F(F($(\'9\',X).c(\'2j\')))?0:F($(\'9\',X).c(\'2j\')));g.1i+=(1F(F($(\'9\',X).c(\'3d\')))?0:F($(\'9\',X).c(\'3d\')));g.1i+=(1F(F($(X).c(\'2L\')))?0:F($(X).c(\'2L\')));g.1i+=(1F(F($(X).c(\'3c\')))?0:F($(X).c(\'3c\')));g.1i+=(1F(F($(X).c(\'2j\')))?0:F($(X).c(\'2j\')));g.1i+=(1F(F($(X).c(\'3d\')))?0:F($(X).c(\'3d\')));$(g.z).1Z(g.14);b 4G=$(g.z).G();b 3H=$(g.d).G();$(g.14).c({1c:-3H+\'1Y\'});$(\'U f:1e m\',g.d).R(a(){b 2N=l.u(\'9\');$(g.14).D(2N);8(!p.2M)p.2M=$(2N).r();$(2N).c({G:4G+3H}).2e(a(e){g.2Q(\'Y\',e,6)});8($.H.1h&&$.H.1U<7.0){g.2O($(g.I).G());$(2N).1o(a(){g.2O();$(6).K(\'2m\')},a(){8(!g.Y)$(6).Z(\'2m\')})}});g.27()}8(p.3e)$(\'1a f:62\',g.z).K(\'3J\');8(p.3f&&p.G!=\'1w\'){g.2P.P=\'5X\';$(g.2P).2e(a(e){g.2Q(\'1L\',e)}).1s(\'<C></C>\');$(g.z).2p(g.2P)}8(p.3f&&p.r!=\'1w\'){g.2E.P=\'63\';$(g.2E).2e(a(e){g.2Q(\'1L\',e,N)}).1s(\'<C></C>\').c(\'G\',$(g.I).G());8($.H.1h&&$.H.1U<7.0){$(g.2E).1o(a(){$(6).K(\'4I\')},a(){$(6).Z(\'4I\')})}$(g.I).D(g.2E)}8(p.46){g.O.P=\'O\';g.O.11=\'<9 A="3P"></9>\';$(g.z).2p(g.O);b 1s=\' <9 A="2d"> <9 A="4M 2g"><C></C></9><9 A="4N 2g"><C></C></9> </9> <9 A="2a"></9> <9 A="2d"><C A="2r">67 <Q 29="2q" 5h="4" 1t="1" /> 5t <C> 1 </C></C></9> <9 A="2a"></9> <9 A="2d"> <9 A="4X 2g"><C></C></9><9 A="4F 2g"><C></C></9> </9> <9 A="2a"></9> <9 A="2d"> <9 A="3h 2g"><C></C></9> </9> <9 A="2a"></9> <9 A="2d"><C A="2T"></C></9>\';$(\'9\',g.O).1s(1s);$(\'.3h\',g.O).17(a(){g.1O()});$(\'.4M\',g.O).17(a(){g.2F(\'1e\')});$(\'.4N\',g.O).17(a(){g.2F(\'2Z\')});$(\'.4X\',g.O).17(a(){g.2F(\'4s\')});$(\'.4F\',g.O).17(a(){g.2F(\'4Q\')});$(\'.2r Q\',g.O).5p(a(e){8(e.5q==13)g.2F(\'Q\')});8($.H.1h&&$.H.1U<7)$(\'.2g\',g.O).1o(a(){$(6).K(\'4U\')},a(){$(6).Z(\'4U\')});8(p.4V){b 3O="";2W(b 3j 4o p.39){8(p.1B==p.39[3j])2u=\'3z="3z"\';j 2u=\'\';3O+="<3l 1t=\'"+p.39[3j]+"\' "+2u+" >"+p.39[3j]+"&2S;&2S;</3l>"};$(\'.3P\',g.O).1J("<9 A=\'2d\'><2h V=\'1B\'>"+3O+"</2h></9> <9 A=\'2a\'></9>");$(\'2h\',g.O).6i(a(){8(p.52)p.52(+6.1t);j{p.1g=1;p.1B=+6.1t;g.1O()}})}8(p.58){$(\'.3P\',g.O).1J("<9 A=\'2d\'> <9 A=\'53 2g\'><C></C></9> </9>  <9 A=\'2a\'></9>");$(\'.53\',g.6m).17(a(){$(g.1b).6o(\'6q\',a(){$(\'.1b:12 Q:1e\',g.I).4d(\'4y\')})});g.1b.P=\'1b\';24=p.58;b 45="";2W(b s=0;s<24.1S;s++){8(p.1r==\'\'&&24[s].6r==N){p.1r=24[s].V;2u=\'3z="3z"\'}j 2u=\'\';45+="<3l 1t=\'"+24[s].V+"\' "+2u+" >"+24[s].1Q+"&2S;&2S;</3l>"}8(p.1r==\'\')p.1r=24[0].V;$(g.1b).D("<9 A=\'6w\'>6x 6A <Q 29=\'2q\' 5h=\'30\' V=\'q\' A=\'6D\' /> <2h V=\'1r\'>"+45+"</2h> <Q 29=\'6G\' 1t=\'5r\' /></9>");$(\'Q[V=q],2h[V=1r]\',g.1b).5p(a(e){8(e.5q==13)g.4l()});$(\'Q[1t=5r]\',g.1b).17(a(){$(\'Q[V=q]\',g.1b).2f(\'\');p.34=\'\';g.4l()});$(g.z).2p(g.1b)}}$(g.O,g.1b).D("<9 1x=\'5u:5v\'></9>");8(p.2Y){g.1N.P=\'1N\';g.1N.11=\'<9 A="6Q">\'+p.2Y+\'</9>\';$(g.I).1J(g.1N);8(p.6S){$(g.1N).D(\'<9 A="5B" 2Y="6T/6U 6W"><C></C></9>\');$(\'9.5B\',g.1N).17(a(){$(g.I).36(\'6Z\');$(6).36(\'71\')})}}g.2D=l.u(\'C\');g.2D.P=\'2D\';g.2A=l.u(\'C\');g.2A.P=\'2A\';g.1H.P=\'73\';b 2K=$(g.z).G();b 3F=g.z.1D;$(g.1H).c({r:g.z.1x.r,G:2K,74:\'5O\',5Q:\'75\',4B:(2K*-1),76:78,1c:3F,19:\'79\'});$(g.1H).7b(0,p.5V);8($(\'m\',g.d).1S){g.B.P=\'B\';g.B.11="<2I 7c=\'0\' 7d=\'0\'><1a></1a></2I>";$(g.B).c({4B:(2K*-1),1Q:\'2n\',1c:3F}).2G();b 3B=0;$(\'m 9\',g.d).R(a(){b 4E=$("m[2k=\'2l"+3B+"\']",g.d)[0];b 3I=\'1v="1v"\';8(4E.1x.1Q==\'2n\')3I=\'\';$(\'1a\',g.B).D(\'<f><k A="60"><Q 29="61" \'+3I+\' A="4Z" 1t="\'+3B+\'" /></k><k A="4O">\'+6.11+\'</k></f>\');3B++});8($.H.1h&&$.H.1U<7.0)$(\'f\',g.B).1o(a(){$(6).K(\'4K\')},a(){$(6).Z(\'4K\')});$(\'k.4O\',g.B).17(a(){8($(\'Q:1v\',g.B).1S<=p.3k&&$(6).2Z().4T(\'Q\')[0].1v)E o;E g.4m($(6).2Z().4T(\'Q\').2f())});$(\'Q.4Z\',g.B).17(a(){8($(\'Q:1v\',g.B).1S<p.3k&&6.1v==o)E o;$(6).2V().4s().4d(\'17\')});$(g.I).1J(g.B);$(g.18).K(\'18\').1s(\'<9></9>\').T(\'2Y\',\'6t/6u 6v\').c(\'1c\',g.d.1D).17(a(){$(g.B).6E();E N});8(p.5l)$(g.I).1J(g.18)}$(g.3t).K(\'3t\').c({1Q:\'2n\'});$(g.z).D(g.3t);$(g.z).1o(a(){$(g.B).J();$(g.18).J()},a(){8(g.2z)g.2z=o});$(g.I).1o(a(){},a(){$(g.B).J();$(g.18).J()});$(l).6V(a(e){g.5A(e)}).5D(a(e){g.4p()}).1o(a(){},a(){g.4p()});8($.H.1h&&$.H.1U<7.0){$(\'.d,.z,.1N,.O,.5X,.2i, .1b\',g.I).c({r:\'4D%\'});$(g.I).K(\'5Z\');8(p.r!=\'1w\')$(g.I).K(\'66\')}t.p=p;t.2c=g;8(p.2y&&p.5b){g.1O()}E t};b 4t=o;$(l).57(a(){4t=N});$.3a.4P=a(p){E 6.R(a(){8(!4t){$(6).J();b t=6;$(l).57(a(){$.3W(t,p)})}j{$.3W(6,p)}})};$.3a.6y=a(p){E 6.R(a(){8(6.2c&&6.p.2y)6.2c.1O()})};$.3a.6J=a(p){E 6.R(a(){8(6.2c)$.4a(6.p,p)})};$.3a.6O=a(2x,12){E 6.R(a(){8(6.2c)6.2c.4m(2x,12)})};$.3a.2G=a(p){8(p==M)3G=N;j 3G=p;8(3G){E 6.R(a(){8($.H.1h||$.H.5I)$(6).51(\'5T\',a(){E o});j 8($.H.5Y){$(6).c(\'4J\',\'2n\');$(\'1y\').4d(\'4y\')}j 8($.H.3p)$(6).51(\'2e\',a(){E o});j $(6).T(\'5R\',\'50\')})}j{E 6.R(a(){8($.H.1h||$.H.5I)$(6).3u(\'5T\');j 8($.H.5Y)$(6).c(\'4J\',\'6h\');j 8($.H.3p)$(6).3u(\'2e\');j $(6).3q(\'5R\',\'50\')})}}})(77);',62,449,'||||||this||if|div|function|var|css|hDiv||tr||||else|td|document|th||false|||width|||createElement|||||bDiv|class|nDiv|span|append|return|parseInt|height|browser|gDiv|hide|addClass|obj|null|true|pDiv|className|input|each|eq|attr|thead|name|colCopy|cdcol|colresize|removeClass||innerHTML|visible||cDrag||page|click|nBtn|left|tbody|sDiv|top|sortorder|first|data|newp|msie|cdpad|total|newH|abbr|sortname|nv|hover|cm|hset|qtype|html|value|align|checked|auto|style|body|scrollLeft|nw|rp|row|offsetTop|btnDiv|isNaN|pth|block|pages|prepend|idx|vresize|stat|mDiv|populate|btn|display|show|length|cdrop|version|dcolt|no|dataType|px|before||cdrag|index|pageX|sitems||id|rePosDrag|ncol|type|btnseparator|loading|grid|pGroup|mousedown|val|pButton|select|tDiv|paddingLeft|axis|col|dragging|none|cdpos|after|text|pcontrol|dcoln|cursor|sel|cdleft|tDiv2|cid|url|multisel|cdropright|hgo|tdDiv|cdropleft|rDiv|changePage|noSelect|asc|table|remove|gh|borderLeftWidth|cgwidth|cgDiv|fixHeight|vDiv|dragStart|thdiv|nbsp|pPageStat|dcol|parent|for|cell|title|prev||diff|case|break|query|process|toggleClass|hTable|pageY|rpOptions|fn|sorted|borderRightWidth|paddingRight|striped|resizable|dragtype|pReload|r2|nx|minColToggle|option|xml|rows|nid|opera|removeAttr|newW|onpress|iDiv|unbind|empty|thMove|Math|nl|selected|thOver|cn|ow|addRowProp|get|gtop|prevent|hdheight|chk|erow|hrH|resize|defwidth|minheight|opt|pDiv2|cb|onToggleCol|onChangeSort|buildpager|robj|onSuccess|addFlex|r1|to|replace||onSubmit|hideOnSubmit|nparam|param|sopt|usepager|prnt|substr|pid|extend|ht|pdl|trigger|pht|pwt|siblings|pdt|colModel|novstripe|buttons|doSearch|toggleCol|wt|in|dragEnd|textAlign|trSelected|next|docloaded|floor|addCellProp|onl|ndw|focus|hasClass|desc|marginBottom|scroll|100|kcol|pLast|cdheight|startX|hgOver|MozUserSelect|ndcolover|hdHeight|pFirst|pPrev|ndcol2|flexigrid|last|minwidth|nleft|find|pBtnOver|useRp|sx|pNext|xdiff|togCol|on|bind|onRpChange|pSearch|errormsg|ol|nomsg|ready|searchitems|sdesc|sasc|autoload|pagestat|from|procmsg|visibility|params|size|method|addData|switchCol|showToggleBtn|ctype|onChangePage|nowrap|keydown|keyCode|Clear|offsetParent|of|clear|both|trOver|right|bottom|ie|dragMove|ptogtitle|bclass|mouseup|fbOver|cellPadding|cellSpacing|target|safari|srcElement|href|changeSort|colmodel|ci|white|colMove|position|unselectable|sy|selectstart|srtd|blockOpacity|items|vGrip|mozilla|ie6|ndcol1|checkbox|odd|hGrip|POST|Connection|ie6fullwidthbug|Page|please|wait|No|border|ppos|offset|absolute|float|nohresize|inherit|change|move|pointer|default|spDiv|ceil|slideToggle|json|fast|isdefault|Processing|Hide|Show|Columns|sDiv2|Quick|flexReload|hidden|Search|ajax|success|qsbox|toggle|switch|button|space|normal|flexOptions|getCellDim|offsetLeft|paddingTop|shiftKey|flexToggleCol|Displaying|ftitle|pager|showTableToggleBtn|Minimize|Maximize|mousemove|Table|separator|fbutton|hideBody|Error|vsble|hDivBox|gBlock|background|relative|zIndex|jQuery|999|0px|200|fadeTo|cellpadding|cellspacing|autoht'.split('|'),0,{}))
diff --git a/src/public/javascripts/jquery-treeview/changelog.txt b/src/public/javascripts/jquery-treeview/changelog.txt
deleted file mode 100644
index 44a94e8..0000000
--- a/src/public/javascripts/jquery-treeview/changelog.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-1.4
----
-
-* Added changelog (this file)
-* Fixed tree control to search only for anchors, allowing images or other elements inside the controls, while keeping the control usable with the keyboard
-* Restructured folder layout: root contains plugin resources, lib contains script dependencies, demo contains demos and related files
-* Added prerendered option: If set to true, assumes all hitarea divs and classes already rendered, speeding up initialization for big trees, but more obtrusive
-* Added jquery.treeview.async.js for ajax-lazy-loading trees, see async.html demo
-* Exposed $.fn.treeview.classes for custom classes if necessary
-* Show treecontrol only when JavaScript is enabled
-* Completely reworked themeing via CSS sprites, resulting in only two files per theme
-  * updated dotted, black, gray and red theme
-  * added famfamfam theme (no lines)
-* Improved cookie persistence to allow multiple persisted trees per page via cookieId option
-* Improved location persistence by making it case-insensitive
-* Improved swapClass and replaceClass plugin implementations
-* Added folder-closed.gif to filetree example
-
-1.3
----
-
-* Fixes for all outstanding bugs
-* Added persistence features
-      * location based: click on a link in the treeview and reopen that link after the page loaded
-      * cookie based: save the state of the tree in a cookie on each click and load that on reload
-* smoothed animations, fixing flickering in both IE and Opera
-* Tested in Firefox 2, IE 6 & 7, Opera 9, Safari 3
-* Moved documentation to jQuery wiki
-* Requires jQuery 1.2+
diff --git a/src/public/javascripts/jquery-treeview/demo/async.html b/src/public/javascripts/jquery-treeview/demo/async.html
deleted file mode 100644
index 8bcd939..0000000
--- a/src/public/javascripts/jquery-treeview/demo/async.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-	<title>jQuery async treeview</title>
-	
-	<link rel="stylesheet" href="../jquery.treeview.css" />
-    <link rel="stylesheet" href="../red-treeview.css" />
-	<link rel="stylesheet" href="screen.css" />
-	
-	<script src="../lib/jquery.js" type="text/javascript"></script>
-	<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.async.js" type="text/javascript"></script>
-	
-	<script type="text/javascript">
-	$(document).ready(function(){
-		$("#black").treeview({
-			url: "source.php"
-		})
-	});
-	</script>
-	
-	</head>
-	<body>
-	
-	<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-	<div id="main">
-	
-	<ul>
-		<li><a href=".">Main Demo</a></li>
-		<li><a href="source.phps">Server component used</a></li>
-	</ul>
-		
-	<h4>Lazy-loading tree</h4>
-	
-	<ul id="black">
-	</ul>
-	
-		
-</div>
- 
-</body></html>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/bg.gif b/src/public/javascripts/jquery-treeview/demo/bg.gif
deleted file mode 100644
index 846add07140d6ff8679e2d3715f6ee25a8045113..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/demo/demo.js b/src/public/javascripts/jquery-treeview/demo/demo.js
deleted file mode 100644
index 2c2a9b4..0000000
--- a/src/public/javascripts/jquery-treeview/demo/demo.js
+++ /dev/null
@@ -1,43 +0,0 @@
-$(document).ready(function(){
-		
-	// first example
-	$("#navigation").treeview({
-		persist: "location",
-		collapsed: true,
-		unique: true
-	});
-	
-	// second example
-	$("#browser").treeview();
-	$("#add").click(function() {
-		var branches = $("<li><span class='folder'>New Sublist</span><ul>" + 
-			"<li><span class='file'>Item1</span></li>" + 
-			"<li><span class='file'>Item2</span></li></ul></li>").appendTo("#browser");
-		$("#browser").treeview({
-			add: branches
-		});
-		branches = $("<li class='closed'><span class='folder'>New Sublist</span><ul><li><span class='file'>Item1</span></li><li><span class='file'>Item2</span></li></ul></li>").prependTo("#folder21");
-		$("#browser").treeview({
-			add: branches
-		});
-	});
-	
-	// third example
-	$("#red").treeview({
-		animated: "fast",
-		collapsed: true,
-		unique: true,
-		persist: "cookie",
-		toggle: function() {
-			window.console && console.log("%o was toggled", this);
-		}
-	});
-	
-	// fourth example
-	$("#black, #gray").treeview({
-		control: "#treecontrol",
-		persist: "cookie",
-		cookieId: "treeview-black"
-	});
-
-});
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/images.html b/src/public/javascripts/jquery-treeview/demo/images.html
deleted file mode 100644
index 6e70340..0000000
--- a/src/public/javascripts/jquery-treeview/demo/images.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-	<title>jQuery treeView</title>
-	
-	<link rel="stylesheet" href="../jquery.treeview.css" />
-    <link rel="stylesheet" href="../red-treeview.css" />
-	<link rel="stylesheet" href="screen.css" />
-	
-	<script src="../lib/jquery.js" type="text/javascript"></script>
-	<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.js" type="text/javascript"></script>
-	
-	<script type="text/javascript">
-		$(function() {
-			$("#browser").treeview();
-		});
-	</script>
-	
-	</head>
-	<body>
-	
-	<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-	<div id="main">
-
-	<h4>Sample 1 - default</h4>
-	<ul id="browser" class="filetree">
-		<li><img src="../images/folder.gif" /> 123</span>
-			<ul>
-				<li>blabla <img src="../images/file.gif" /></li>
-			</ul>
-		</li>
-		<li><img src="../images/folder.gif" />
-			<ul>
-				<li><img src="../images/folder.gif" />
-					<ul id="folder21">
-						<li><img src="../images/file.gif" /> more text</li>
-						<li>and here, too<img src="../images/file.gif" /></li>
-					</ul>
-				</li>
-				<li><img src="../images/file.gif" /></li>
-			</ul>
-		</li>
-		<li class="closed">this is closed! <img src="../images/folder.gif" />
-			<ul>
-				<li><img src="../images/file.gif" /></li>
-			</ul>
-		</li>
-		<li><img src="../images/file.gif" /></li>
-	</ul>
-		
-</div>
- 
-</body></html>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/index.html b/src/public/javascripts/jquery-treeview/demo/index.html
deleted file mode 100644
index aff15fa..0000000
--- a/src/public/javascripts/jquery-treeview/demo/index.html
+++ /dev/null
@@ -1,340 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-	<title>jQuery treeView</title>
-	
-	<link rel="stylesheet" href="../jquery.treeview.css" />
-	<link rel="stylesheet" href="screen.css" />
-	
-	<script src="../lib/jquery.js" type="text/javascript"></script>
-	<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.js" type="text/javascript"></script>
-	
-	<script type="text/javascript" src="demo.js"></script>
-	
-	</head>
-	<body>
-	
-	<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-	<div id="main">
-	
-	<a href="demo.js">Pagecode</a>
-	
-	<h3>Other demos</h3>
-	<ul>
-		<li><a href="large.html">Large Tree Demo</a></li>
-		<li><a href="prerendered.html">Prerendered Large Tree Demo</a></li>
-		<li><a href="async.html">Async Tree Demo</a></li>
-		<li><a href="simple.html">Simple Tree Demo, famfamfam theme (no lines)</a></li>
-	</ul>
-		
-	<h4>Sample 0 - navigation</h4>
-	
-	<ul id="navigation">
-		<li><a href="?1">Item 1</a>
-			<ul>
-				<li><a href="?1.0">Item 1.0</a>
-					<ul>
-						<li><a href="?1.0.0">Item 1.0.0</a></li>
-					</ul>
-				</li>
-				<li><a href="?1.1">Item 1.1</a></li>
-				<li><a href="?1.2">Item 1.2</a>
-					<ul>
-						<li><a href="?1.2.0">Item 1.2.0</a>
-						<ul>
-							<li><a href="?1.2.0.0">Item 1.2.0.0</a></li>
-							<li><a href="?1.2.0.1">Item 1.2.0.1</a></li>
-							<li><a href="?1.2.0.2">Item 1.2.0.2</a></li>
-						</ul>
-					</li>
-						<li><a href="?1.2.1">Item 1.2.1</a>
-						<ul>
-							<li><a href="?1.2.1.0">Item 1.2.1.0</a></li>
-						</ul>
-					</li>
-						<li><a href="?1.2.2">Item 1.2.2</a>
-						<ul>
-							<li><a href="?1.2.2.0">Item 1.2.2.0</a></li>
-							<li><a href="?1.2.2.1">Item 1.2.2.1</a></li>
-							<li><a href="?1.2.2.2">Item 1.2.2.2</a></li>
-						</ul>
-					</li>
-					</ul>
-				</li>
-			</ul>
-		</li>
-		<li><a href="?2">Item 2</a>
-			<ul>
-				<li><span>Item 2.0</span>
-					<ul>
-						<li><a href="?2.0.0">Item 2.0.0</a>
-						<ul>
-							<li><a href="?2.0.0.0">Item 2.0.0.0</a></li>
-							<li><a href="?2.0.0.1">Item 2.0.0.1</a></li>
-						</ul>
-					</li>
-					</ul>
-				</li>
-				<li><a href="?2.1">Item 2.1</a>
-					<ul>
-						<li><a href="?2.1.0">Item 2.1.0</a>
-						<ul>
-							<li><a href="?2.1.0.0">Item 2.1.0.0</a></li>
-						</ul>
-					</li>
-						<li><a href="?2.1.1">Item 2.1.1</a>
-						<ul>
-							<li><a href="?2.1.1.0abc">Item 2.1.1.0</a></li>
-							<li><a href="?2.1.1.1">Item 2.1.1.1</a></li>
-							<li><a href="?2.1.1.2">Item 2.1.1.2</a></li>
-						</ul>
-					</li>
-						<li><a href="?2.1.2">Item 2.1.2</a>
-						<ul>
-							<li><a href="?2.1.2.0">Item 2.1.2.0</a></li>
-							<li><a href="?2.1.2.1">Item 2.1.2.1</a></li>
-							<li><a href="?2.1.2.2">Item 2.1.2.2</a></li>
-						</ul>
-					</li>
-					</ul>
-				</li>
-			</ul>
-		</li>
-		<li><a href="?3">Item 3</a>
-			<ul>
-				<li class="open"><a href="?3.0">Item 3.0</a>
-					<ul>
-						<li><a href="?3.0.0">Item 3.0.0</a></li>
-						<li><a href="?3.0.1">Item 3.0.1</a>
-							<ul>
-								<li><a href="?3.0.1.0">Item 3.0.1.0</a></li>
-								<li><a href="?3.0.1.1">Item 3.0.1.1</a></li>
-							</ul>
-						</li>
-						<li><a href="?3.0.2">Item 3.0.2</a>
-							<ul>
-								<li><a href="?3.0.2.0">Item 3.0.2.0</a></li>
-								<li><a href="?3.0.2.1">Item 3.0.2.1</a></li>
-								<li><a href="?3.0.2.2">Item 3.0.2.2</a></li>
-							</ul>
-						</li>
-					</ul>
-				</li>
-			</ul>
-		</li>
-	</ul>
-	
-	
-	<h4>Sample 1 - default</h4>
-	<ul id="browser" class="filetree">
-		<li><span class="folder">Folder 1</span>
-			<ul>
-				<li><span class="file">Item 1.1</span></li>
-			</ul>
-		</li>
-		<li><span class="folder">Folder 2</span>
-			<ul>
-				<li><span class="folder">Subfolder 2.1</span>
-					<ul id="folder21">
-						<li><span class="file">File 2.1.1</span></li>
-						<li><span class="file">File 2.1.2</span></li>
-					</ul>
-				</li>
-				<li><span class="file">File 2.2</span></li>
-			</ul>
-		</li>
-		<li class="closed"><span class="folder">Folder 3 (closed at start)</span>
-			<ul>
-				<li><span class="file">File 3.1</span></li>
-			</ul>
-		</li>
-		<li><span class="file">File 4</span></li>
-	</ul>
-	
-	<button id="add">Add!</button>
-	
-	<h4>Sample 2 - fast animations, all branches collapsed at first, red theme, cookie-based persistance</h4>
-	<ul id="red" class="treeview-red">
-	<li><span>Item 1</span>
-		<ul>
-			<li><span>Item 1.0</span>
-				<ul>
-					<li><span>Item 1.0.0</span></li>
-				</ul>
-			</li>
-			<li><span>Item 1.1</span></li>
-			<li><span>Item 1.2</span>
-				<ul>
-					<li><span>Item 1.2.0</span>
-					<ul>
-						<li><span>Item 1.2.0.0</span></li>
-						<li><span>Item 1.2.0.1</span></li>
-						<li><span>Item 1.2.0.2</span></li>
-					</ul>
-				</li>
-					<li><span>Item 1.2.1</span>
-					<ul>
-						<li><span>Item 1.2.1.0</span></li>
-					</ul>
-				</li>
-					<li><span>Item 1.2.2</span>
-					<ul>
-						<li><span>Item 1.2.2.0</span></li>
-						<li><span>Item 1.2.2.1</span></li>
-						<li><span>Item 1.2.2.2</span></li>
-					</ul>
-				</li>
-				</ul>
-			</li>
-		</ul>
-	</li>
-	<li><span>Item 2</span>
-		<ul>
-			<li><span>Item 2.0</span>
-				<ul>
-					<li><span>Item 2.0.0</span>
-					<ul>
-						<li><span>Item 2.0.0.0</span></li>
-						<li><span>Item 2.0.0.1</span></li>
-					</ul>
-				</li>
-				</ul>
-			</li>
-			<li><span>Item 2.1</span>
-				<ul>
-					<li><span>Item 2.1.0</span>
-					<ul>
-						<li><span>Item 2.1.0.0</span></li>
-					</ul>
-				</li>
-					<li><span>Item 2.1.1</span>
-					<ul>
-						<li><span>Item 2.1.1.0</span></li>
-						<li><span>Item 2.1.1.1</span></li>
-						<li><span>Item 2.1.1.2</span></li>
-					</ul>
-				</li>
-					<li><span>Item 2.1.2</span>
-					<ul>
-						<li><span>Item 2.1.2.0</span></li>
-						<li><span>Item 2.1.2.1</span></li>
-						<li><span>Item 2.1.2.2</span></li>
-					</ul>
-				</li>
-				</ul>
-			</li>
-		</ul>
-	</li>
-	<li class="open"><span>Item 3</span>
-		<ul>
-			<li class="open"><span>Item 3.0</span>
-				<ul>
-					<li><span>Item 3.0.0</span></li>
-					<li><span>Item 3.0.1</span>
-					<ul>
-						<li><span>Item 3.0.1.0</span></li>
-						<li><span>Item 3.0.1.1</span></li>
-					</ul>
-					
-				</li>
-					<li><span>Item 3.0.2</span>
-					<ul>
-						<li><span>Item 3.0.2.0</span></li>
-						<li><span>Item 3.0.2.1</span></li>
-						<li><span>Item 3.0.2.2</span></li>
-					</ul>
-				</li>
-				</ul>
-			</li>
-		</ul>
-	</li>
-	</ul>
-	
-	<h4>Sample 3 - two trees with one tree control, black and gray theme, cookie-based persistance</h4>
-	<div id="treecontrol">
-		<a title="Collapse the entire tree below" href="#"><img src="../images/dir_open.png" /> Collapse All</a>
-		<a title="Expand the entire tree below" href="#"><img src="../images/dir_closed.png" /> Expand All</a>
-		<a title="Toggle the tree below, opening closed branches, closing open branches" href="#">Toggle All</a>
-	</div>
-	<ul id="black" class="treeview-black">
-		<li>Item 1</li>
-		<li>
-			<span>Item 2</span>
-			<ul>
-				<li>
-					<span>Item 2.1</span>
-					<ul>
-						<li>Item 2.1.1</li>
-						<li>Item 2.1.2</li>
-					</ul>
-				</li>
-				<li>Item 2.2</li>
-				<li class="closed">
-					<span>Item 2.3 (closed at start)</span>
-					<ul>
-						<li>Item 2.3.1</li>
-						<li>Item 2.3.2</li>
-					</ul>
-				</li>
-			</ul>
-		</li>
-	</ul>
-	<ul id="gray" class="treeview-gray">
-		<li>Item 1</li>
-		<li>
-			<span>Item 2</span>
-			<ul>
-				<li class="closed">
-					<span>Item 2.1 (closed at start)</span>
-					<ul>
-						<li>Item 2.1.1</li>
-						<li>Item 2.1.2</li>
-					</ul>
-				</li>
-				<li>Item 2.2.1</li>
-				<li>Item 2.2.2</li>
-				<li>Item 2.2.3</li>
-				<li>Item 2.2.4</li>
-				<li>Item 2.2.5</li>
-				<li>Item 2.2.6</li>
-				<li>Item 2.2.7</li>
-				<li>Item 2.2.8</li>
-				<li>
-					<span>Item 2.3</span>
-					<ul>
-						<li>Item 2.3.1</li>
-						<li>Item 2.3.2</li>
-						<li>Item 2.3.3</li>
-						<li>Item 2.3.4</li>
-						<li>Item 2.3.5</li>
-						<li>Item 2.3.6</li>
-						<li>Item 2.3.7</li>
-						<li>Item 2.3.8</li>
-						<li>Item 2.3.9</li>
-					</ul>
-				</li>
-				<li>
-					<span>Item 2.4</span>
-					<ul>
-						<li>Item 2.4.1</li>
-						<li>Item 2.4.2</li>
-						<li>Item 2.4.3</li>
-						<li>Item 2.4.4</li>
-						<li>Item 2.4.5</li>
-						<li>Item 2.4.6</li>
-						<li>Item 2.4.7</li>
-						<li>Item 2.4.8</li>
-						<li>Item 2.4.9</li>
-					</ul>
-				</li>
-			</ul>
-		</li>
-		<li>Item 3</li>
-	</ul>	
-	
-</div>
- 
-</body></html>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/large.html b/src/public/javascripts/jquery-treeview/demo/large.html
deleted file mode 100644
index 86b48ec..0000000
--- a/src/public/javascripts/jquery-treeview/demo/large.html
+++ /dev/null
@@ -1,559 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-<link rel="stylesheet" href="../jquery.treeview.css" />
-<link rel="stylesheet" href="../red-treeview.css" />
-<link rel="stylesheet" href="screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-<script src="../jquery.treeview.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-		$(function() {
-			$("#tree").treeview({
-				collapsed: true,
-				animated: "medium",
-				control:"#sidetreecontrol",
-				persist: "location"
-			});
-		})
-		
-	</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-<div id="main"><a href=".">Main Demo</a>
-
-<div id="sidetree">
-<div class="treeheader">&nbsp;</div>
-<div id="sidetreecontrol"><a href="?#">Collapse All</a> | <a href="?#">Expand All</a></div>
-
-<ul id="tree">
-	<li><a href="?/index.cfm"><strong>Home</strong></a>
-	<ul>
-		<li><a href="?/enewsletters/index.cfm">Airdrie eNewsletters </a></li>
-		<li><a href="?/index.cfm">Airdrie Directories</a></li>
-		<li><a href="?/economic_development/video/index.cfm">Airdrie Life Video</a></li>
-
-		<li><a href="?/index.cfm">Airdrie News</a></li>
-		<li><a href="?/index.cfm">Airdrie Quick Links</a></li>
-		<li><a href="?http://weather.ibegin.com/ca/ab/airdrie/">Airdrie Weather</a></li>
-		<li><a href="?/human_resources/index.cfm">Careers</a> | <a href="?/contact_us/index.cfm">Contact Us</a> | <a href="?/site_map/index.cfm">Site Map</a> | <a href="?/links/index.cfm">Links</a></li>
-
-		<li><a href="?/calendars/index.cfm">Community Calendar </a></li>
-		<li><a href="?/conditions_of_use/index.cfm">Conditions of Use and Privacy Statement</a></li>
-		<li><a href="?/index.cfm">I'd like to find out about... </a></li>
-		<li><a href="?/index.cfm">Opportunities</a></li>
-		<li><a href="?/links/index.cfm">Resource Links</a></li>
-		<li><a href="?/index.cfm">Special Notices</a></li>
-
-	</ul>
-	</li>
-	<li><span><strong>City Services</strong></span>
-	<ul>
-		<li><a href="?/assessment/index.cfm">Assessment</a>
-		<ul>
-			<li><a href="?/assessment/assessment_faqs.cfm">Assessment FAQs</a></li>
-
-			<li><a href="?/assessment/property_assessment_notices.cfm">2007 Property Assessment Notices</a></li>
-			<li><a href="?http://www.creb.com/">CREB</a></li>
-			<li><a href="?/assessment/non_residential_assessment_tax_comparisons.cfm">Non-Residential Assessment / Tax Comparisons</a></li>
-			<li><a href="?/assessment/how_to_file_a_complaint.cfm">How to File a Complaint</a></li>
-			<li><a href="?/assessment/supplementary_assessment_tax.cfm">Supplementary Assessment and Tax</a></li>
-		</ul>
-
-		</li>
-		<li><a href="?/building_development/index.cfm">Building &amp; Development </a>
-		<ul>
-			<li><a href="?/building_inspections/index.cfm">Building Inspections</a>
-			<ul>
-				<li><a href="?/building_inspections/builder_forums.cfm">Builder Forums</a></li>
-				<li><a href="?/building_inspections/contact_us.cfm">Contact Us</a></li>
-				<li><a href="?/building_inspections/contractor_notices.cfm">Contractor Notices</a></li>
-				<li><a href="?/building_inspections/inspector_guidelines.cfm">Inspector Guidelines</a></li>
-				<li><a href="?/building_inspections/links.cfm">Links</a></li>
-				<li><a href="?/building_inspections/statistics_2007.cfm">Statistics</a>
-				<ul>
-
-					<li><a href="?/building_inspections/statistics_2006.cfm">Statistics 2006</a></li>
-					<li><a href="?/building_inspections/statistics_2005.cfm">Statistics 2005</a></li>
-				</ul>
-				</li>
-			</ul>
-			</li>
-			<li><a title="City Infrastructure" href="?/building_development/city_infrastructure/index.cfm">City Infrastructure</a>
-			<ul>
-
-				<li><a href="?/building_development/city_infrastructure/roadway_improvement.cfm">Roadway Improvement</a></li>
-				<li><a href="?/building_development/city_infrastructure/traffic.cfm">Traffic</a></li>
-				<li><a href="?/building_development/city_infrastructure/transportation_planning.cfm">Transportation &amp; Infrastructure Planning</a></li>
-				<li><a href="?/building_development/city_infrastructure/water_sewer_construction.cfm">Water &amp; Sewer Construction</a></li>
-
-			</ul>
-			</li>
-			<li><a title="Commercial/Industrial Development" href="?/building_development/commercial_industrial_development/index.cfm">Commercial / Industrial / Multi-Family Development</a>
-			<ul>
-				<li><a title="Call Before You Dig" href="?/building_development/commercial_industrial_development/call_before_you_dig.cfm">Call Before You Dig</a></li>
-				<li><a title="New Development" href="?/building_development/commercial_industrial_development/new_development.cfm">New Development</a></li>
-				<li><a title="Existing Development" href="?/building_development/commercial_industrial_development/existing_development.cfm">Existing Development</a></li>
-				<li><a title="Signage" href="?/building_development/commercial_industrial_development/signage.cfm">Signage</a></li>
-				<li><a title="Notice of Development" href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development</a></li>
-				<li><a title="Appeals" href="?/public_meetings/appeals/index.cfm">Appeals</a></li>
-				<li><a title="Customer Feedback" href="?/building_development/commercial_industrial_development/customer_feedback.cfm">Customer Feedback</a></li>
-				<li><a title="Certificate of Compliance" href="?/building_development/commercial_industrial_development/certificate_of_compliance.cfm">Certificate of Compliance</a></li>
-				<li><a title="Permit Applications &amp; Forms" href="?/building_development/commercial_industrial_development/permit_applications_forms.cfm">Permit Applications &amp; Forms</a></li>
-				<li><a title="Fees" href="?/building_development/commercial_industrial_development/fees.cfm">Fees</a></li>
-			</ul>
-			</li>
-			<li><!-- This links to an empty content page (25 Sept 2007) --> <a title="Residential Development" href="?/building_development/residential_development/index.cfm">Residential Development</a>
-			<ul>
-				<li><a title="Call Before You Dig" href="?/building_development/residential_construction/building_permit_requirements.cfm">Building Permit Requirements</a></li>
-				<li><a title="New Development" href="?/building_development/residential_construction/new_homes.cfm">New Homes</a></li>
-				<li><a title="Existing Development" href="?/building_development/residential_construction/basements.cfm">Basements</a></li>
-				<li><a title="Signage" href="?/building_development/commercial_industrial_development/call_before_you_dig.cfm">Call Before You Dig</a></li>
-				<li><a title="Decks" href="?/building_development/residential_development/decks.cfm">Decks</a></li>
-				<li><a title="Detached Garages or Accessory Building" href="?/building_development/residential_development/detached_garages_or_accessory_building.cfm">Detached Garages or Accessory Building</a></li>
-				<li><a title="Grading" href="?/building_development/residential_development/grading.cfm">Grading</a></li>
-				<li><a title="Fences" href="?/building_development/residential_development/fences.cfm">Fences</a></li>
-				<li><a title="Applications, Permits &amp; Checklists" href="?/building_development/residential_development/applications_permits_checklists.cfm">Applications, Permits &amp; Checklists</a></li>
-				<li><a title="Certificate of Compliance" href="?/building_development/commercial_industrial_development/certificate_of_compliance.cfm">Certificate of Compliance</a></li>
-				<li><a title="Fees" href="?/building_development/residential_development/fees.cfm">Fees</a></li>
-				<li><a title="Notice of Development" href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development</a></li>
-				<li><a title="Street Addresses for New Construction" href="?/gis/index.cfm">Street Addresses for New Construction</a></li>
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li><a href="?/community_safety/index.cfm">Community Safety</a>
-		<ul>
-			<li><a href="?/disaster_services/index.cfm">Disaster Services</a></li>
-
-			<li><a href="?/emergency_services/index.cfm">Emergency Services</a></li>
-			<li><a href="?/municipal_enforcement/index.cfm">Municipal Enforcement</a></li>
-			<li><a href="?/rcmp/index.cfm">Royal Canadian Mounted Police</a>
-			<ul>
-				<li><a title="Community Partnership Programs" href="?/rcmp/community_partnership_programs.cfm">Community Partnership Programs</a></li>
-				<li><a title="Traffic Services" href="?/rcmp/traffic_services.cfm">Traffic Services</a></li>
-
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li><a href="?/community_services/index.cfm">Community Services</a>
-		<ul>
-			<li><a href="?/directories/community_directory/index.cfm">Community Directory</a></li>
-			<li><a href="?/calendars/index.cfm">Community Calendar</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/engineering/index.cfm">Engineering Services </a></li>
-		<li><a href="?/finance/index.cfm">Finance</a></li>
-		<li><a href="?/gis/index.cfm">Maps (GIS)</a></li>
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li><a href="?/public_works/index.cfm">Public Works</a></li>
-		<li><a href="?/recycling_waste/index.cfm">Recycling, Waste &amp; Composting</a>
-		<ul>
-			<li><a href="?/environmental_services/index.cfm">Environmental Services </a></li>
-		</ul>
-		</li>
-
-		<li><a href="?/social_planning/index.cfm">Social Planning</a></li>
-		<li><a href="?/taxation/index.cfm">Taxation</a></li>
-		<li><a href="?/transit/index.cfm">Transit</a></li>
-		<li><a href="?/utilities/index.cfm">Water &amp; Sewer (Utilities)</a></li>
-	</ul>
-	</li>
-
-	<li><span><strong>News</strong></span>
-	<ul>
-		<li><a href="?/enewsletters/index.cfm">Airdrie eNewsletters</a>
-		<ul>
-			<li><a href="?http://www.industrymailout.com/Industry/View.aspx?id=50169&amp;p=679b">Airdrie Today eNewsletter</a></li>
-			<li><a href="?http://www.industrymailout.com/Industry/View.aspx?id=47265&amp;q=0&amp;qz=4c4af0">Airdrie @Work eNewsletter</a></li>
-			<li><a href="?http://www.industrymailout.com/Industry/Archives.aspx?m=2682&amp;qz=73249dbb">Airdrie eNewsletter Archive</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/calendars/index.cfm">Community Calendar</a></li>
-		<li><a href="?/community_news/index.cfm">Community News</a></li>
-		<li><a href="?/news_release/index.cfm">News Releases</a> (2007)
-		<ul>
-			<li><a href="?/news_release/2006/index.cfm" title="2006 News Releases">2006 News Releases</a></li>
-
-			<li><a href="?/news_release/2005/index.cfm" title="2005 News Releases">2005 News Releases</a></li>
-			<li><a href="?/news_release/2004/index.cfm" title="2004 News Releases">2004 News Releases</a></li>
-		</ul>
-		</li>
-		<li><a href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development </a></li>
-		<li><a href="?/photogallery/index.cfm">Photo Gallery</a></li>
-		<li><a href="?/public_meetings/index.cfm">Public Meetings</a>
-
-		<ul>
-			<li><a href="?/public_meetings/appeals/index.cfm">Appeals</a></li>
-			<li><a href="?/public_meetings/open_houses/index.cfm">Open Houses</a></li>
-			<li><a href="?/public_meetings/public_hearings/index.cfm">Public Hearings</a></li>
-		</ul>
-		</li>
-		<li><a href="?/publications/index.cfm">Publications</a>
-
-		<ul>
-			<li><a href="?/publications/pdf/AirdrieLIFE_fall2006.pdf">Airdrie Life Magazine</a> (16MB, .PDF)</li>
-			<li><a href="?/publications/pdf/report_for_2005.pdf">Annual Economic Report</a> (5 MB, .PDF)</li>
-			<li><a href="?/publications/pdf/Airdrie%20community%20report%20for%202006_sm.pdf">Annual Community Report</a></li>
-		</ul>
-
-		</li>
-	</ul>
-	</li>
-	<li><span><strong>City Council &amp; Administration </strong></span>
-	<ul>
-		<li><a href="?/election/index.cfm">2007 Election</a>
-		<ul>
-
-			<li><a href="?/election/city_council.cfm" title="City Council">City Council</a></li>
-			<li><a href="?/election/candidates.cfm" title="Candidates">Candidates</a></li>
-			<li><a href="?/election/candidate_information_package.cfm" title="Candidate Information Package">Candidate Information Package</a></li>
-			<li><a href="?/election/faq.cfm" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
-			<li><a href="?/election/how_to_vote.cfm" title="How to Vote">How to Vote</a></li>
-			<li><a href="?/election/media.cfm" title="Media">Media</a></li>
-
-			<li><a href="?/election/past_elections.cfm" title="Past Elections">Past Elections</a></li>
-		</ul>
-		</li>
-		<li><a href="?/finance/budget_at_a_glance.cfm">Budget</a></li>
-		<li><a href="?/city_council/bylaws/index.cfm">Bylaws</a>
-		<ul>
-			<li><a href="?/city_council/bylaws/how_bylaws_are_passed.cfm">How Bylaws Are Passed</a></li>
-
-			<li><a href="?/city_council/bylaws/new_laws.cfm">New Laws</a></li>
-			<li><a href="?/city_council/policies.cfm">Policies</a></li>
-		</ul>
-		</li>
-		<li><a href="?/economic_development/census/index.cfm">Census</a></li>
-		<li><a href="?/city_council/index.cfm">City Council</a></li>
-
-	</ul>
-	<ul>
-		<li><a href="?/city_council/board_appointments.cfm">Board Appointments</a></li>
-		<li><a href="?/city_council/committees_boards_commission.cfm">Committees / Boards / Commssion</a>
-		<ul>
-			<li><a href="?/city_council/library_board.cfm" title="Airdrie Municipal Library Board">Airdrie Municipal Library Board</a></li>
-			<li><a href="?/city_council/assessment_review_board.cfm" title="Assessment Review Board">Assessment Review Board</a></li>
-
-			<li><a href="?/city_council/community_service_advisory_board.cfm" title="Community Services Advisory Board">Community Services Advisory Board</a></li>
-			<li><a href="?/city_council/enviromental_advisory_board.cfm" title="Environmental Advisory Board">Environmental Advisory Board</a></li>
-			<li><a href="?/city_council/finance_committee.cfm" title="Finance Advisory Committee">Finance Advisory Committee</a></li>
-			<li><a href="?/city_council/municipal_planning_commission.cfm" title="Municipal Planning Commission">Municipal Planning Commission</a></li>
-			<li><a href="?/city_council/municipal_police_committee.cfm" title="Municipal Police Committee">Municipal Police Committee</a></li>
-			<li><a href="?/city_council/subdivision_development_appeal_board.cfm" title="Subdivision and Development Appeal Board">Subdivision and Development Appeal Board</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/city_council/faq.cfm">Frequently Asked Questions (FAQ's)</a></li>
-		<li><a href="?/city_council/mayors_message.cfm">Mayor's Message</a></li>
-		<li><a href="?/city_council/mission_vision.cfm">Mission and Vision</a></li>
-		<li><a href="?/city_council/meet_your_council.cfm">Meet Your Council</a></li>
-		<li><a href="?/city_council/strategic_priorities.cfm">Strategic Priorities</a>
-
-		<ul>
-			<li><a href="?/city_council/strategic_priorities.cfm" title="Strategic Priorities 2008">Strategic Priorities 2008</a></li>
-			<li><a href="?/city_council/strategic_priorities_07.cfm" title="Strategic Priorities 2007">Strategic Priorities 2007</a></li>
-			<li><a href="?/city_council/strategic_priorities_06.cfm" title="Strategic Priorities 2006">Strategic Priorities 2006</a></li>
-			<li><a href="?/city_council/strategic_priorities_05.cfm" title="Strategic Priorities 2005">Strategic Priorities 2005</a></li>
-			<li><a href="?/city_council/strategic_priorities_04.cfm" title="Strategic Priorities 2004">Strategic Priorities 2004</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/city_council/city_council_meetings.cfm">City Council Meetings</a>
-		<ul>
-			<li><a href="?/city_council/agendas/2007_agendas.cfm">City Council Meeting Agendas</a>
-			<ul>
-				<li><a href="?/city_council/agendas/2007_agendas.cfm" title="2007 Agendas">2007 City Council Meeting Agendas</a></li>
-
-				<li><a href="?/city_council/agendas/2006_agendas.cfm" title="2006 Agendas">2006 City Council Meeting Agendas</a></li>
-				<li><a href="?/city_council/agendas/2005_agendas.cfm" title="2005 Agendas">2005 City Council Meeting Agendas</a></li>
-				<li><a href="?/city_council/agendas/2004_agendas.cfm" title="2004 Agendas">2004 City Council Meeting Agendas</a></li>
-			</ul>
-			</li>
-			<li><a href="?/city_council/minutes/2007_minutes.cfm">City Council Meeting Minutes</a>
-			<ul>
-
-				<li><a href="?/city_council/minutes/2007_minutes.cfm" title="2007 City Council Meeting Minutes">2007 City Council Meeting Minutes</a></li>
-				<li><a href="?/city_council/minutes/2006_minutes.cfm" title="2006 City Council Meeting Minutes">2006 City Council Meeting Minutes</a></li>
-				<li><a href="?/city_council/minutes/2005_minutes.cfm" title="2005 City Council Meeting Minutes">2005 City Council Meeting Minutes</a></li>
-				<li><a href="?/city_council/minutes/2004_minutes.cfm" title="2004 City Council Meeting Minutes">2004 City Council Meeting Minutes</a></li>
-			</ul>
-			</li>
-			<li><a href="?/city_council/synopsis/2007_synopsis.cfm">City Council Meeting Synopsis</a>
-
-			<ul>
-				<li><a href="?/city_council/synopsis/2007_synopsis.cfm" title="2007 City Council Meeting Synopsis">2007 City Council Meeting Synopsis</a></li>
-				<li><a href="?/city_council/synopsis/2006_synopsis.cfm" title="2006 City Council Meeting Synopsis">2006 City Council Meeting Synopsis</a></li>
-				<li><a href="?/city_council/synopsis/2005_synopsis.cfm" title="2005 City Council Meeting Synopsis">2005 City Council Meeting Synopsis</a></li>
-				<li><a href="?/city_council/synopsis/2004_synopsis.cfm" title="2004 City Council Meeting Synopsis">2004 City Council Meeting Synopsis</a></li>
-			</ul>
-			</li>
-
-			<li><a href="?/city_council/how_to_go_to_council.cfm">How to Go to Council</a></li>
-		</ul>
-		</li>
-		<li><a href="?/city_council/foip.cfm">FOIP</a></li>
-		<li><a href="?/city_council/how_government_works.cfm">How Government Works</a></li>
-		<li><a href="?/city_council/legislative_admin_services.cfm">Legislative &amp; Admin Services</a>
-
-		<ul>
-			<li><a href="?/city_council/city_managers_message.cfm">City Manager's Message</a></li>
-		</ul>
-		</li>
-		<li><a href="?/org_chart/index.cfm">Organizational Chart</a></li>
-	</ul>
-	</li>
-	<li><strong><a href="?#">Lifestyle</a></strong>
-
-	<ul>
-		<li><a href="?/about_airdrie/index.cfm">About Airdrie</a>
-		<ul>
-			<li><a href="?/about_airdrie/history.cfm">History</a></li>
-		</ul>
-		</li>
-		<li><a href="?/arts_culture/index.cfm">Arts &amp; Culture</a>
-
-		<ul>
-			<li><a href="?/arts_culture/airdrie_art.cfm">Airdrie Art</a></li>
-			<li><a href="?http://www.airdriepubliclibrary.ca/">Airdrie Public Library</a></li>
-			<li><a href="?/arts_culture/airdrie_rodeo_ranch.cfm">Airdrie Rodeo Ranch</a></li>
-			<li><a href="?/bert_church_theatre/index.cfm">Bert Church LIVE Theatre</a></li>
-			<li><a href="?/twinning_program/index.cfm">Korean Twinning Program</a></li>
-
-			<li><a href="?/arts_culture/little_theatre_association.cfm">Little Theatre Association</a></li>
-			<li><a href="?/sport_community_facilities/nose_creek_valley_museum.cfm">Nose Creek Valley Museum</a></li>
-			<li><a href="?http://www.rockyview.ab.ca/rvae/">Rocky View Adult Education</a></li>
-		</ul>
-		</li>
-		<li><a href="?/bert_church_theatre/index.cfm">Bert Church LIVE Theatre</a>
-		<ul>
-
-			<li><a href="?/bert_church_theatre/about_us.cfm" title="About Us">About Us</a></li>
-			<li><a href="?/bert_church_theatre/season_program.cfm" title="Current Season Program">Current Season Program</a></li>
-			<li><a href="?/bert_church_theatre/box_office.cfm" title="Box Office">Box Office</a></li>
-			<li><a href="?/bert_church_theatre/theatre_rental.cfm" title="Theatre Rental">Theatre Rental</a></li>
-			<li><a href="?/bert_church_theatre/technical_specifications.cfm" title="Technical Specifications">Technical Specifications</a></li>
-			<li><a href="?/bert_church_theatre/contact_us.cfm" title="Contact Us">Contact Us</a></li>
-
-			<li><a href="?/bert_church_theatre/photogallery.cfm" title="Photo Gallery">Photo Gallery</a></li>
-			<li><a href="?/bert_church_theatre/links.cfm" title="Links">Links</a></li>
-			<li><a href="?http://www.theresawasden.com/music_in_common.htm" title="Performing Arts Classes">Performing Arts Classes</a></li>
-		</ul>
-		</li>
-		<li><a href="?/elrwc/index.cfm">East Lake Recreation &amp; Wellness Centre</a>
-
-		<ul>
-			<li><a href="?/elrwc/about_facility.cfm" title="About the Facility">About the Facility</a></li>
-			<li><a href="?/elrwc/contact.cfm" title="Contact Us">Contact Us</a></li>
-			<li><a href="?/elrwc/forms.cfm" title="Forms">Forms</a></li>
-			<li><a href="?/elrwc/future_phases.cfm" title="Future Phases">Future Phases</a></li>
-			<li><a href="?/elrwc/hours_operation.cfm" title="Hours of Operation &amp; Schedules">Hours of Operation &amp; Schedules</a>
-
-			<ul>
-				<li><a href="?/elrwc/schedules.cfm">Schedules</a></li>
-			</ul>
-			</li>
-			<li><a href="?/elrwc/city_guide.cfm" title="In the City Guide">In the City Guide</a></li>
-			<li><a href="?/elrwc/opportunities_events.cfm" title="Opportunities &amp; Events">Opportunities &amp; Events</a></li>
-
-			<li><a href="?/elrwc/programs_services.cfm" title="Programs &amp; Services">Programs &amp; Services</a>
-			<ul>
-				<li><a title="Aquatics" href="?/elrwc/aquatics.cfm">Aquatics</a>
-				<ul>
-					<li><a title="Water Drop-in Classes" href="?/elrwc/water_classes.cfm">Water Drop-in Classes</a></li>
-
-				</ul>
-				</li>
-				<li><a title="Child Care Services" href="?/elrwc/child_services.cfm">Child Care Services</a></li>
-				<li><a title="Children Activities" href="?/elrwc/children_activities.cfm">Children Activities</a></li>
-				<li><a title="Fitness &amp; Wellness" href="?/elrwc/fitness_wellness.cfm">Fitness &amp; Wellness</a>
-
-				<ul>
-					<li><a title="Dry Land Drop-in Classes" href="?/elrwc/land_classes.cfm">Dry Land Drop-in Classes</a></li>
-					<li><a title="Fitness &amp; Wellness Services" href="?/elrwc/fitness_wellness_services.cfm">Fitness &amp; Wellness Services</a></li>
-				</ul>
-				</li>
-				<li><a title="Party Packages" href="?/elrwc/party_packages.cfm">Party Packages</a></li>
-
-				<li><a title="Room Rentals" href="?/elrwc/room_rentals.cfm">Room Rentals</a></li>
-			</ul>
-			</li>
-			<li><a href="?/elrwc/rates_fees.cfm" title="Rates &amp; Fees">Rates &amp; Fees</a></li>
-			<li><a href="?/elrwc/register_now.cfm" title="Register Now">Register Now</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/education/index.cfm">Education</a></li>
-		<li><a href="?/health/index.cfm">Health</a></li>
-		<li><a href="?/gis/index.cfm">Maps (GIS)</a></li>
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li><a title="Parks" href="?/parks/index.cfm">Parks</a>
-		<ul>
-			<li><a title="City Parks Programs" href="?city_parks_programs.cfm">City Parks Programs</a>
-			<ul>
-				<li><a href="?airdrie_horticulture_society.cfm" title="Airdrie Horticulture Society">Airdrie Horticulture Society</a></li>
-				<li><a href="?communities_in_bloom.cfm" title="Communities in Bloom">Communities in Bloom</a></li>
-				<li><a href="?community_garden.cfm" title="Community Garden">Community Garden</a></li>
-
-				<li><a href="?landscape_awards_program.cfm" title="Landscape Awards Program">Landscape Awards Program</a></li>
-			</ul>
-			</li>
-			<li><a title="Maintenance" href="?maintenance.cfm">Maintenance</a>
-			<ul>
-				<li><a href="?dandelions.cfm" title="Dandelions">Dandelions</a></li>
-				<li><a href="?gophers.cfm" title="Gophers">Gophers</a></li>
-
-				<li><a href="?grass_cutting.cfm" title="Grass Cutting">Grass Cutting</a></li>
-				<li><a href="?pathway_snow_removal.cfm" title="Pathway Snow Removal">Pathway Snow Removal</a></li>
-			</ul>
-			</li>
-			<li><a title="Maps" href="?/gis/index.cfm">Maps</a></li>
-			<li><a title="Outdoor Facilities" href="?outdoor_facilities.cfm">Outdoor Facilities</a>
-			<ul>
-
-				<li><a title="Ball Diamonds" href="?ball_diamonds.cfm">Ball Diamonds</a></li>
-				<li><a title="BMX Track" href="?bmx_track.cfm">BMX Track</a></li>
-				<li><a title="Bookings" href="?bookings.cfm">Bookings</a></li>
-				<li><a title="Cemetery" href="?cemetery.cfm">Cemetery</a></li>
-				<li><a title="Fire Pits" href="?fire_pits.cfm">Fire Pits</a></li>
-				<li><a title="Gwacheon Park" href="?/twinning_program/index.cfm#gwacheon">Gwacheon Park</a></li>
-
-				<li><a title="Off-Leash Areas" href="?off_leash_areas.cfm">Off-Leash Areas</a></li>
-				<li><a title="Outdoor Rinks" href="?outdoor_rinks.cfm">Outdoor Rinks</a></li>
-				<li><a title="Parks &amp; Playgrounds" href="?parks_playgrounds.cfm">Parks & Playgrounds</a></li>
-				<li><a title="Skate Park" href="?skate_park.cfm">Skate Park</a></li>
-				<li><a title="Soccer/Athletic Fields" href="?soccer_athletic_fields.cfm">Soccer/Athletic Fields</a></li>
-				<li><a title="Splash Park" href="?splash_park.cfm">Splash Park</a></li>
-
-				<li><a title="Tennis Courts" href="?tennis_courts.cfm">Tennis Courts</a></li>
-			</ul>
-			</li>
-			<li><a title="Parks Planning &amp; Construction" href="?parks_planning_construction.cfm">Parks Planning & Construction</a>
-			<ul>
-				<li><a href="?construction.cfm" title="Construction">Construction</a></li>
-				<li><a href="?plans.cfm" title="Plans">Plans</a></li>
-
-			</ul>
-			</li>
-			<li><a title="Urban Forest" href="?urban_forest.cfm">Urban Forest</a>
-			<ul>
-				<li><a href="?city_trees.cfm" title="City Trees">City Trees</a></li>
-				<li><a href="?tree_planting.cfm" title="Tree Planting">Tree Planting</a></li>
-			</ul>
-
-			</li>
-			<li><a title="Weeds &amp; Pests" href="?weeds_pests.cfm">Weeds & Pests</a>
-			<ul>
-				<li><a href="?mosquito_control.cfm" title="Mosquito Control">Mosquito Control</a></li>
-				<li><a href="?pest_control.cfm" title="Pest Control">Pest Control</a></li>
-				<li><a href="?weed_control_plant_disease.cfm" title="Weed Control &amp; Plant Disease">Weed Control &amp; Plant Disease</a></li>
-
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li><a title="Sport &amp; Community Facilities" href="?/sport_community_facilities/index.cfm">Sport &amp; Community Facilities</a>
-		<ul>
-			<li><a title="Indoor Facilities" href="?/sport_community_facilities/indoor_facilities.cfm">Indoor Facilities</a>
-
-			<ul>
-				<li><a title="Arenas/Gymnastics" href="?/sport_community_facilities/arenas_gymnastics.cfm">Arenas/Gymnastics</a></li>
-				<li><a title="Curling Rink" href="?/sport_community_facilities/curling_rink.cfm">Curling Rink</a></li>
-				<li><a title="East Lake Recreation &amp; Wellness Centre" href="?/elrwc/index.cfm">East Lake Recreation &amp; Wellness Centre</a></li>
-				<li><a title="Nose Creek Valley Museum" href="?/sport_community_facilities/nose_creek_valley_museum.cfm">Nose Creek Valley Museum</a></li>
-				<li><a title="Over 50 Club" href="?/sport_community_facilities/over_50_club.cfm">Over 50 Club</a></li>
-
-				<li><a title="Town &amp; Country" href="?/sport_community_facilities/town_country.cfm">Town &amp; Country</a></li>
-			</ul>
-			</li>
-			<li><a title="Outdoor Facilities" href="?/parks/outdoor_facilities.cfm">Outdoor Facilities</a></li>
-		</ul>
-		</li>
-	</ul>
-
-	</li>
-	<li><strong><a href="?#">Visiting</a></strong>
-	<ul>
-		<li><a href="?/economic_development/video/index.cfm">Airdrie LIFE Video</a></li>
-		<li><a href="?/gis/recreation_map/index.cfm">Community Map</a></li>
-		<li><a href="?/events/index.cfm">Events</a>
-		<ul>
-
-			<li><a href="?http://www.airdriefestivaloflights.com">Airdrie Festival of Lights</a></li>
-			<li><a href="?http://www.airdrieprorodeo.net/">Airdrie Pro Rodeo</a></li>
-			<li><a href="?http://www.pch.gc.ca/special/canada/index_e.cfm">Canada Day</a></li>
-		</ul>
-		</li>
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li><a href="?/economic_development/tourist_information/tourist_information.cfm">Tourist Information</a>
-		<ul>
-			<li><a href="?/economic_development/entertainment/entertainment.cfm">Entertainment</a></li>
-			<li><a href="?/economic_development/hotels/hotels.cfm">Hotels</a></li>
-			<li><a href="?/economic_development/restaurants/restaurants.cfm">Restaurants</a></li>
-			<li><a href="?/economic_development/shopping/shopping.cfm">Shopping</a></li>
-
-			<li><a href="?http://www1.travelalberta.com/en-ab/index.cfm?country=CA&amp;state=AB&amp;setlocale=1">Travel Alberta</a></li>
-		</ul>
-		</li>
-		<li><a href="?http://www.woodsidegc.com/contact.html">Woodside Golf Course</a></li>
-	</ul>
-	</li>
-	<li><strong><a href="?/economic_development/index.cfm">Doing Business</a></strong>
-
-	<ul>
-		<li><a href="?/economic_development/business_attraction/index.cfm">Business Attraction</a>
-		<ul>
-			<li><a href="?http://www.albertafirst.com/profiles/statspack/20365.html">Airdrie Profile</a></li>
-			<li><a href="?/economic_development/business_attraction/business_case.cfm">Business Case For Airdrie</a></li>
-			<li><a href="?/economic_development/census/index.cfm">Census Data </a></li>
-			<li><a href="?http://www.albertafirst.com/realestate/">Properties and Businesses For Sale</a></li>
-
-			<li><a href="?/taxation/non_residential_comparisons.cfm">Taxation</a></li>
-		</ul>
-		</li>
-		<li><a href="?/economic_development/business_development/index.cfm">Business Development</a>
-		<ul>
-			<li><a href="?/economic_development/business_development/business_associations.cfm">Business Associations</a></li>
-			<li><a href="?/economic_development/business_development/business_resources.cfm">Business Resources</a></li>
-
-			<li><a href="?/economic_development/business_development/business_services.cfm">Business Services</a></li>
-			<li><a href="?/corporate_properties/index.cfm">Corporate Properties</a></li>
-			<li><a href="?/economic_development/business_development/home_businesses.cfm">Home Based Businesses</a></li>
-		</ul>
-		</li>
-		<li><a href="?/directories/business_directory/index.cfm">Business Directory</a></li>
-
-		<li><a href="?/economic_development/business_licenses/index.cfm">Business Licenses</a>
-		<ul>
-			<li><a href="?/economic_development/business_licenses/municipal_licenses_permits.cfm">Municipal Licenses &amp; Permits</a></li>
-			<li><a href="?/economic_development/business_licenses/provincial_licenses_permits.cfm">Provincial Licenses &amp; Permits</a></li>
-			<li><a href="?/economic_development/business_licenses/registry_services.cfm">Registry Services</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?http://bsa.canadabusiness.ca/gol/bsa/site.nsf/en/index.html">How to Start a Business</a></li>
-		<li><a href="?/finance/procurement_services.cfm">Procurement Services</a></li>
-	</ul>
-	</li>
-	<li><strong><a href="?https://vch.airdrie.ca/index.cfm">Online Services</a></strong></li>
-
-</ul>
-</div>
-
-</div>
-
-</body>
-
-</html>
diff --git a/src/public/javascripts/jquery-treeview/demo/prerendered.html b/src/public/javascripts/jquery-treeview/demo/prerendered.html
deleted file mode 100644
index 957822f..0000000
--- a/src/public/javascripts/jquery-treeview/demo/prerendered.html
+++ /dev/null
@@ -1,621 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-	<link rel="stylesheet" href="../jquery.treeview.css" />
-    <link rel="stylesheet" href="../red-treeview.css" />
-	<link rel="stylesheet" href="screen.css" />
-	
-	<script src="../lib/jquery.js" type="text/javascript"></script>
-	<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.js" type="text/javascript"></script>
-	
-	<script type="text/javascript">
-		$(function() {
-			$("#tree").treeview({
-				collapsed: true,
-				animated: "medium",
-				control:"#sidetreecontrol",
-				prerendered: true,
-				persist: "location"
-			});
-		})
-		
-	</script>
-
-</head>
-<body>
-
-	<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-	<div id="main">
-	
-	<a href=".">Main Demo</a>
-
-<div id="sidetree">
-  <div class="treeheader">&nbsp;</div>
-  <div id="sidetreecontrol"> <a href="?#">Collapse All</a> | <a href="?#">Expand All</a> </div>
-
-  <ul class="treeview" id="tree">
-
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/index.cfm"><strong>Home</strong></a>
-	<ul style="display: none;">
-		<li><a href="?/enewsletters/index.cfm">Airdrie eNewsletters </a></li>
-		<li><a href="?/index.cfm">Airdrie Directories</a></li>
-		<li><a href="?/economic_development/video/index.cfm">Airdrie Life Video</a></li>
-
-		<li><a href="?/index.cfm">Airdrie News</a></li>
-
-		<li><a href="?/index.cfm">Airdrie Quick Links</a></li>
-		<li><a href="?http://weather.ibegin.com/ca/ab/airdrie/" target="_blank">Airdrie Weather</a></li>
-		<li><a href="?/human_resources/index.cfm">Careers</a> | <a href="?/contact_us/index.cfm">Contact Us</a> | <a href="?/site_map/index.cfm">Site Map</a> | <a href="?/links/index.cfm">Links</a></li>
-
-		<li><a href="?/calendars/index.cfm">Community Calendar </a></li>
-		<li><a href="?/conditions_of_use/index.cfm">Conditions of Use and Privacy Statement</a></li>
-		<li><a href="?/index.cfm">I'd like to find out about... </a></li>
-		<li><a href="?/index.cfm">Opportunities</a></li>
-		<li><a href="?/links/index.cfm">Resource Links</a></li>
-		<li class="last"><a href="?/index.cfm">Special Notices</a></li>
-
-	</ul>
-	</li>
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><span><strong>City Services</strong></span>
-	<ul style="display: none;">
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/assessment/index.cfm">Assessment</a>
-		<ul style="display: none;">
-			<li><a href="?/assessment/assessment_faqs.cfm">Assessment FAQs</a></li>
-
-			<li><a href="?/assessment/property_assessment_notices.cfm">2007 Property Assessment Notices</a></li>
-			<li><a href="?http://www.creb.com/" target="_blank">CREB</a></li>
-			<li><a href="?/assessment/non_residential_assessment_tax_comparisons.cfm">Non-Residential Assessment / Tax Comparisons</a></li>
-			<li><a href="?/assessment/how_to_file_a_complaint.cfm">How to File a Complaint</a></li>
-			<li class="last"><a href="?/assessment/supplementary_assessment_tax.cfm">Supplementary Assessment and Tax</a></li>
-		</ul>
-
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/building_development/index.cfm">Building &amp; Development </a>
-		<ul style="display: none;">
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/building_inspections/index.cfm">Building Inspections</a>
-			<ul style="display: none;">
-				<li><a href="?/building_inspections/builder_forums.cfm">Builder Forums</a></li>
-
-				<li><a href="?/building_inspections/contact_us.cfm">Contact Us</a></li>
-				<li><a href="?/building_inspections/contractor_notices.cfm">Contractor Notices</a></li>
-				<li><a href="?/building_inspections/inspector_guidelines.cfm">Inspector Guidelines</a></li>
-				<li><a href="?/building_inspections/links.cfm">Links</a></li>
-				<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><a href="?/building_inspections/statistics_2007.cfm">Statistics</a>
-				<ul style="display: none;">
-
-					<li><a href="?/building_inspections/statistics_2006.cfm">Statistics 2006</a></li>
-					<li class="last"><a href="?/building_inspections/statistics_2005.cfm">Statistics 2005</a></li>
-				</ul>
-				</li>
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="City Infrastructure" href="?/building_development/city_infrastructure/index.cfm">City Infrastructure</a>
-
-			<ul style="display: none;">
-
-				<li><a href="?/building_development/city_infrastructure/roadway_improvement.cfm">Roadway Improvement</a></li>
-				<li><a href="?/building_development/city_infrastructure/traffic.cfm">Traffic</a></li>
-				<li><a href="?/building_development/city_infrastructure/transportation_planning.cfm">Transportation &amp; Infrastructure Planning</a></li>
-				<li class="last"><a href="?/building_development/city_infrastructure/water_sewer_construction.cfm">Water &amp; Sewer Construction</a></li>
-
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Commercial/Industrial Development" href="?/building_development/commercial_industrial_development/index.cfm">Commercial / Industrial / Multi-Family Development</a>
-			<ul style="display: none;">
-				<li><a title="Call Before You Dig" href="?/building_development/commercial_industrial_development/call_before_you_dig.cfm">Call Before You Dig</a></li>
-				<li><a title="New Development" href="?/building_development/commercial_industrial_development/new_development.cfm">New Development</a></li>
-				<li><a title="Existing Development" href="?/building_development/commercial_industrial_development/existing_development.cfm">Existing Development</a></li>
-
-				<li><a title="Signage" href="?/building_development/commercial_industrial_development/signage.cfm">Signage</a></li>
-				<li><a title="Notice of Development" href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development</a></li>
-				<li><a title="Appeals" href="?/public_meetings/appeals/index.cfm">Appeals</a></li>
-				<li><a title="Customer Feedback" href="?/building_development/commercial_industrial_development/customer_feedback.cfm">Customer Feedback</a></li>
-				<li><a title="Certificate of Compliance" href="?/building_development/commercial_industrial_development/certificate_of_compliance.cfm">Certificate of Compliance</a></li>
-				<li><a title="Permit Applications &amp; Forms" href="?/building_development/commercial_industrial_development/permit_applications_forms.cfm">Permit Applications &amp; Forms</a></li>
-
-				<li class="last"><a title="Fees" href="?/building_development/commercial_industrial_development/fees.cfm">Fees</a></li>
-			</ul>
-			</li>
-			<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><!-- This links to an empty content page (25 Sept 2007) --> <a title="Residential Development" href="?/building_development/residential_development/index.cfm">Residential Development</a>
-			<ul style="display: none;">
-				<li><a title="Call Before You Dig" href="?/building_development/residential_construction/building_permit_requirements.cfm">Building Permit Requirements</a></li>
-				<li><a title="New Development" href="?/building_development/residential_construction/new_homes.cfm">New Homes</a></li>
-
-				<li><a title="Existing Development" href="?/building_development/residential_construction/basements.cfm">Basements</a></li>
-				<li><a title="Signage" href="?/building_development/commercial_industrial_development/call_before_you_dig.cfm">Call Before You Dig</a></li>
-				<li><a title="Decks" href="?/building_development/residential_development/decks.cfm">Decks</a></li>
-				<li><a title="Detached Garages or Accessory Building" href="?/building_development/residential_development/detached_garages_or_accessory_building.cfm">Detached Garages or Accessory Building</a></li>
-				<li><a title="Grading" href="?/building_development/residential_development/grading.cfm">Grading</a></li>
-				<li><a title="Fences" href="?/building_development/residential_development/fences.cfm">Fences</a></li>
-
-				<li><a title="Applications, Permits &amp; Checklists" href="?/building_development/residential_development/applications_permits_checklists.cfm">Applications, Permits &amp; Checklists</a></li>
-				<li><a title="Certificate of Compliance" href="?/building_development/commercial_industrial_development/certificate_of_compliance.cfm">Certificate of Compliance</a></li>
-				<li><a title="Fees" href="?/building_development/residential_development/fees.cfm">Fees</a></li>
-				<li><a title="Notice of Development" href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development</a></li>
-				<li class="last"><a title="Street Addresses for New Construction" href="?/gis/index.cfm">Street Addresses for New Construction</a></li>
-
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/community_safety/index.cfm">Community Safety</a>
-		<ul style="display: none;">
-			<li><a href="?/disaster_services/index.cfm">Disaster Services</a></li>
-
-			<li><a href="?/emergency_services/index.cfm">Emergency Services</a></li>
-			<li><a href="?/municipal_enforcement/index.cfm">Municipal Enforcement</a></li>
-			<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><a href="?/rcmp/index.cfm">Royal Canadian Mounted Police</a>
-			<ul style="display: none;">
-				<li><a title="Community Partnership Programs" href="?/rcmp/community_partnership_programs.cfm">Community Partnership Programs</a></li>
-				<li class="last"><a title="Traffic Services" href="?/rcmp/traffic_services.cfm">Traffic Services</a></li>
-
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/community_services/index.cfm">Community Services</a>
-		<ul style="display: none;">
-			<li><a href="?/directories/community_directory/index.cfm">Community Directory</a></li>
-
-			<li class="last"><a href="?/calendars/index.cfm">Community Calendar</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/engineering/index.cfm">Engineering Services </a></li>
-		<li><a href="?/finance/index.cfm">Finance</a></li>
-		<li><a href="?/gis/index.cfm">Maps (GIS)</a></li>
-
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li><a href="?/public_works/index.cfm">Public Works</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/recycling_waste/index.cfm">Recycling, Waste &amp; Composting</a>
-		<ul style="display: none;">
-			<li class="last"><a href="?/environmental_services/index.cfm">Environmental Services </a></li>
-
-		</ul>
-		</li>
-
-		<li><a href="?/social_planning/index.cfm">Social Planning</a></li>
-		<li><a href="?/taxation/index.cfm">Taxation</a></li>
-		<li><a href="?/transit/index.cfm">Transit</a></li>
-		<li class="last"><a href="?/utilities/index.cfm">Water &amp; Sewer (Utilities)</a></li>
-
-	</ul>
-	</li>
-
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><span><strong>News</strong></span>
-	<ul style="display: none;">
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/enewsletters/index.cfm">Airdrie eNewsletters</a>
-		<ul style="display: none;">
-			<li><a href="?http://www.industrymailout.com/Industry/View.aspx?id=50169&amp;p=679b" target="_new">Airdrie Today eNewsletter</a></li>
-
-			<li><a href="?http://www.industrymailout.com/Industry/View.aspx?id=47265&amp;q=0&amp;qz=4c4af0" target="_new">Airdrie @Work eNewsletter</a></li>
-			<li class="last"><a href="?http://www.industrymailout.com/Industry/Archives.aspx?m=2682&amp;qz=73249dbb" target="_new">Airdrie eNewsletter Archive</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/calendars/index.cfm">Community Calendar</a></li>
-		<li><a href="?/community_news/index.cfm">Community News</a></li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/news_release/index.cfm">News Releases</a> (2007)
-		<ul style="display: none;">
-			<li><a href="?/news_release/2006/index.cfm" title="2006 News Releases">2006 News Releases</a></li>
-
-			<li><a href="?/news_release/2005/index.cfm" title="2005 News Releases">2005 News Releases</a></li>
-			<li class="last"><a href="?/news_release/2004/index.cfm" title="2004 News Releases">2004 News Releases</a></li>
-		</ul>
-
-		</li>
-		<li><a href="?/building_development/planning/notice_of_development/notice_of_development.cfm">Notice of Development </a></li>
-		<li><a href="?/photogallery/index.cfm">Photo Gallery</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/public_meetings/index.cfm">Public Meetings</a>
-
-		<ul style="display: none;">
-			<li><a href="?/public_meetings/appeals/index.cfm">Appeals</a></li>
-
-			<li><a href="?/public_meetings/open_houses/index.cfm">Open Houses</a></li>
-			<li class="last"><a href="?/public_meetings/public_hearings/index.cfm">Public Hearings</a></li>
-		</ul>
-		</li>
-		<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><a href="?/publications/index.cfm">Publications</a>
-
-		<ul style="display: none;">
-			<li><a href="?/publications/pdf/AirdrieLIFE_fall2006.pdf">Airdrie Life Magazine</a> (16MB, .PDF)</li>
-
-			<li><a href="?/publications/pdf/report_for_2005.pdf">Annual Economic Report</a> (5 MB, .PDF)</li>
-			<li class="last"><a href="?/publications/pdf/Airdrie%20community%20report%20for%202006_sm.pdf">Annual Community Report</a></li>
-		</ul>
-
-		</li>
-	</ul>
-	</li>
-
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><span><strong>City Council &amp; Administration </strong></span>
-	<ul style="display: none;">
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/election/index.cfm">2007 Election</a>
-		<ul style="display: none;">
-
-			<li><a href="?/election/city_council.cfm" title="City Council">City Council</a></li>
-			<li><a href="?/election/candidates.cfm" title="Candidates">Candidates</a></li>
-
-			<li><a href="?/election/candidate_information_package.cfm" title="Candidate Information Package">Candidate Information Package</a></li>
-			<li><a href="?/election/faq.cfm" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
-			<li><a href="?/election/how_to_vote.cfm" title="How to Vote">How to Vote</a></li>
-			<li><a href="?/election/media.cfm" title="Media">Media</a></li>
-
-			<li class="last"><a href="?/election/past_elections.cfm" title="Past Elections">Past Elections</a></li>
-		</ul>
-
-		</li>
-		<li><a href="?/finance/budget_at_a_glance.cfm">Budget</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/bylaws/index.cfm">Bylaws</a>
-		<ul style="display: none;">
-			<li><a href="?/city_council/bylaws/how_bylaws_are_passed.cfm">How Bylaws Are Passed</a></li>
-
-			<li><a href="?/city_council/bylaws/new_laws.cfm">New Laws</a></li>
-
-			<li class="last"><a href="?/city_council/policies.cfm">Policies</a></li>
-		</ul>
-		</li>
-		<li><a href="?/economic_development/census/index.cfm">Census</a></li>
-		<li class="last"><a href="?/city_council/index.cfm">City Council</a></li>
-
-	</ul>
-	<ul style="display: none;">
-
-		<li><a href="?/city_council/board_appointments.cfm">Board Appointments</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/committees_boards_commission.cfm">Committees / Boards / Commssion</a>
-		<ul style="display: none;">
-			<li><a href="?/city_council/library_board.cfm" title="Airdrie Municipal Library Board">Airdrie Municipal Library Board</a></li>
-			<li><a href="?/city_council/assessment_review_board.cfm" title="Assessment Review Board">Assessment Review Board</a></li>
-
-			<li><a href="?/city_council/community_service_advisory_board.cfm" title="Community Services Advisory Board">Community Services Advisory Board</a></li>
-
-			<li><a href="?/city_council/enviromental_advisory_board.cfm" title="Environmental Advisory Board">Environmental Advisory Board</a></li>
-			<li><a href="?/city_council/finance_committee.cfm" title="Finance Advisory Committee">Finance Advisory Committee</a></li>
-			<li><a href="?/city_council/municipal_planning_commission.cfm" title="Municipal Planning Commission">Municipal Planning Commission</a></li>
-			<li><a href="?/city_council/municipal_police_committee.cfm" title="Municipal Police Committee">Municipal Police Committee</a></li>
-			<li class="last"><a href="?/city_council/subdivision_development_appeal_board.cfm" title="Subdivision and Development Appeal Board">Subdivision and Development Appeal Board</a></li>
-
-		</ul>
-
-		</li>
-		<li><a href="?/city_council/faq.cfm">Frequently Asked Questions (FAQ's)</a></li>
-		<li><a href="?/city_council/mayors_message.cfm">Mayor's Message</a></li>
-		<li><a href="?/city_council/mission_vision.cfm">Mission and Vision</a></li>
-		<li><a href="?/city_council/meet_your_council.cfm">Meet Your Council</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/strategic_priorities.cfm">Strategic Priorities</a>
-
-		<ul style="display: none;">
-			<li><a href="?/city_council/strategic_priorities.cfm" title="Strategic Priorities 2008">Strategic Priorities 2008</a></li>
-			<li><a href="?/city_council/strategic_priorities_07.cfm" title="Strategic Priorities 2007">Strategic Priorities 2007</a></li>
-			<li><a href="?/city_council/strategic_priorities_06.cfm" title="Strategic Priorities 2006">Strategic Priorities 2006</a></li>
-			<li><a href="?/city_council/strategic_priorities_05.cfm" title="Strategic Priorities 2005">Strategic Priorities 2005</a></li>
-			<li class="last"><a href="?/city_council/strategic_priorities_04.cfm" title="Strategic Priorities 2004">Strategic Priorities 2004</a></li>
-
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/city_council_meetings.cfm">City Council Meetings</a>
-		<ul style="display: none;">
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/agendas/2007_agendas.cfm">City Council Meeting Agendas</a>
-			<ul style="display: none;">
-				<li><a href="?/city_council/agendas/2007_agendas.cfm" title="2007 Agendas">2007 City Council Meeting Agendas</a></li>
-
-				<li><a href="?/city_council/agendas/2006_agendas.cfm" title="2006 Agendas">2006 City Council Meeting Agendas</a></li>
-				<li><a href="?/city_council/agendas/2005_agendas.cfm" title="2005 Agendas">2005 City Council Meeting Agendas</a></li>
-				<li class="last"><a href="?/city_council/agendas/2004_agendas.cfm" title="2004 Agendas">2004 City Council Meeting Agendas</a></li>
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/minutes/2007_minutes.cfm">City Council Meeting Minutes</a>
-
-			<ul style="display: none;">
-
-				<li><a href="?/city_council/minutes/2007_minutes.cfm" title="2007 City Council Meeting Minutes">2007 City Council Meeting Minutes</a></li>
-				<li><a href="?/city_council/minutes/2006_minutes.cfm" title="2006 City Council Meeting Minutes">2006 City Council Meeting Minutes</a></li>
-				<li><a href="?/city_council/minutes/2005_minutes.cfm" title="2005 City Council Meeting Minutes">2005 City Council Meeting Minutes</a></li>
-				<li class="last"><a href="?/city_council/minutes/2004_minutes.cfm" title="2004 City Council Meeting Minutes">2004 City Council Meeting Minutes</a></li>
-			</ul>
-
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/synopsis/2007_synopsis.cfm">City Council Meeting Synopsis</a>
-
-			<ul style="display: none;">
-				<li><a href="?/city_council/synopsis/2007_synopsis.cfm" title="2007 City Council Meeting Synopsis">2007 City Council Meeting Synopsis</a></li>
-				<li><a href="?/city_council/synopsis/2006_synopsis.cfm" title="2006 City Council Meeting Synopsis">2006 City Council Meeting Synopsis</a></li>
-				<li><a href="?/city_council/synopsis/2005_synopsis.cfm" title="2005 City Council Meeting Synopsis">2005 City Council Meeting Synopsis</a></li>
-
-				<li class="last"><a href="?/city_council/synopsis/2004_synopsis.cfm" title="2004 City Council Meeting Synopsis">2004 City Council Meeting Synopsis</a></li>
-			</ul>
-			</li>
-
-			<li class="last"><a href="?/city_council/how_to_go_to_council.cfm">How to Go to Council</a></li>
-		</ul>
-		</li>
-		<li><a href="?/city_council/foip.cfm">FOIP</a></li>
-
-		<li><a href="?/city_council/how_government_works.cfm">How Government Works</a></li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/city_council/legislative_admin_services.cfm">Legislative &amp; Admin Services</a>
-
-		<ul style="display: none;">
-			<li class="last"><a href="?/city_council/city_managers_message.cfm">City Manager's Message</a></li>
-		</ul>
-		</li>
-
-		<li class="last"><a href="?/org_chart/index.cfm">Organizational Chart</a></li>
-	</ul>
-	</li>
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><strong><a href="?#">Lifestyle</a></strong>
-
-	<ul style="display: none;">
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/about_airdrie/index.cfm">About Airdrie</a>
-		<ul style="display: none;">
-
-			<li class="last"><a href="?/about_airdrie/history.cfm">History</a></li>
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/arts_culture/index.cfm">Arts &amp; Culture</a>
-
-		<ul style="display: none;">
-			<li><a href="?/arts_culture/airdrie_art.cfm">Airdrie Art</a></li>
-
-			<li><a href="?http://www.airdriepubliclibrary.ca/" target="_new">Airdrie Public Library</a></li>
-			<li><a href="?/arts_culture/airdrie_rodeo_ranch.cfm">Airdrie Rodeo Ranch</a></li>
-			<li><a href="?/bert_church_theatre/index.cfm">Bert Church LIVE Theatre</a></li>
-			<li><a href="?/twinning_program/index.cfm">Korean Twinning Program</a></li>
-
-			<li><a href="?/arts_culture/little_theatre_association.cfm">Little Theatre Association</a></li>
-			<li><a href="?/sport_community_facilities/nose_creek_valley_museum.cfm" target="_new">Nose Creek Valley Museum</a></li>
-
-			<li class="last"><a href="?http://www.rockyview.ab.ca/rvae/" target="_new">Rocky View Adult Education</a></li>
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/bert_church_theatre/index.cfm">Bert Church LIVE Theatre</a>
-		<ul style="display: none;">
-
-			<li><a href="?/bert_church_theatre/about_us.cfm" title="About Us">About Us</a></li>
-			<li><a href="?/bert_church_theatre/season_program.cfm" title="Current Season Program">Current Season Program</a></li>
-
-			<li><a href="?/bert_church_theatre/box_office.cfm" title="Box Office">Box Office</a></li>
-			<li><a href="?/bert_church_theatre/theatre_rental.cfm" title="Theatre Rental">Theatre Rental</a></li>
-			<li><a href="?/bert_church_theatre/technical_specifications.cfm" title="Technical Specifications">Technical Specifications</a></li>
-			<li><a href="?/bert_church_theatre/contact_us.cfm" title="Contact Us">Contact Us</a></li>
-
-			<li><a href="?/bert_church_theatre/photogallery.cfm" title="Photo Gallery">Photo Gallery</a></li>
-			<li><a href="?/bert_church_theatre/links.cfm" title="Links">Links</a></li>
-
-			<li class="last"><a href="?http://www.theresawasden.com/music_in_common.htm" target="_blank" title="Performing Arts Classes">Performing Arts Classes</a></li>
-		</ul>
-		</li>
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/elrwc/index.cfm">East Lake Recreation &amp; Wellness Centre</a>
-
-		<ul style="display: none;">
-			<li><a href="?/elrwc/about_facility.cfm" title="About the Facility">About the Facility</a></li>
-
-			<li><a href="?/elrwc/contact.cfm" title="Contact Us">Contact Us</a></li>
-			<li><a href="?/elrwc/forms.cfm" title="Forms">Forms</a></li>
-			<li><a href="?/elrwc/future_phases.cfm" title="Future Phases">Future Phases</a></li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/elrwc/hours_operation.cfm" title="Hours of Operation &amp; Schedules">Hours of Operation &amp; Schedules</a>
-
-			<ul style="display: none;">
-
-				<li class="last"><a href="?/elrwc/schedules.cfm">Schedules</a></li>
-			</ul>
-			</li>
-			<li><a href="?/elrwc/city_guide.cfm" title="In the City Guide">In the City Guide</a></li>
-			<li><a href="?/elrwc/opportunities_events.cfm" title="Opportunities &amp; Events">Opportunities &amp; Events</a></li>
-
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/elrwc/programs_services.cfm" title="Programs &amp; Services">Programs &amp; Services</a>
-
-			<ul style="display: none;">
-				<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Aquatics" href="?/elrwc/aquatics.cfm">Aquatics</a>
-				<ul style="display: none;">
-					<li class="last"><a title="Water Drop-in Classes" href="?/elrwc/water_classes.cfm">Water Drop-in Classes</a></li>
-
-				</ul>
-				</li>
-				<li><a title="Child Care Services" href="?/elrwc/child_services.cfm">Child Care Services</a></li>
-
-				<li><a title="Children Activities" href="?/elrwc/children_activities.cfm">Children Activities</a></li>
-				<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Fitness &amp; Wellness" href="?/elrwc/fitness_wellness.cfm">Fitness &amp; Wellness</a>
-
-				<ul style="display: none;">
-					<li><a title="Dry Land Drop-in Classes" href="?/elrwc/land_classes.cfm">Dry Land Drop-in Classes</a></li>
-					<li class="last"><a title="Fitness &amp; Wellness Services" href="?/elrwc/fitness_wellness_services.cfm">Fitness &amp; Wellness Services</a></li>
-
-				</ul>
-				</li>
-				<li><a title="Party Packages" href="?/elrwc/party_packages.cfm">Party Packages</a></li>
-
-				<li class="last"><a title="Room Rentals" href="?/elrwc/room_rentals.cfm">Room Rentals</a></li>
-			</ul>
-			</li>
-			<li><a href="?/elrwc/rates_fees.cfm" title="Rates &amp; Fees">Rates &amp; Fees</a></li>
-
-			<li class="last"><a href="?/elrwc/register_now.cfm" title="Register Now">Register Now</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?/education/index.cfm">Education</a></li>
-		<li><a href="?/health/index.cfm">Health</a></li>
-		<li><a href="?/gis/index.cfm">Maps (GIS)</a></li>
-
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Parks" href="?/parks/index.cfm">Parks</a>
-		<ul style="display: none;">
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="City Parks Programs" href="?city_parks_programs.cfm">City Parks Programs</a>
-			<ul style="display: none;">
-				<li><a href="?airdrie_horticulture_society.cfm" title="Airdrie Horticulture Society">Airdrie Horticulture Society</a></li>
-
-				<li><a href="?communities_in_bloom.cfm" title="Communities in Bloom">Communities in Bloom</a></li>
-				<li><a href="?community_garden.cfm" title="Community Garden">Community Garden</a></li>
-
-				<li class="last"><a href="?landscape_awards_program.cfm" title="Landscape Awards Program">Landscape Awards Program</a></li>
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Maintenance" href="?maintenance.cfm">Maintenance</a>
-
-			<ul style="display: none;">
-				<li><a href="?dandelions.cfm" title="Dandelions">Dandelions</a></li>
-				<li><a href="?gophers.cfm" title="Gophers">Gophers</a></li>
-
-				<li><a href="?grass_cutting.cfm" title="Grass Cutting">Grass Cutting</a></li>
-				<li class="last"><a href="?pathway_snow_removal.cfm" title="Pathway Snow Removal">Pathway Snow Removal</a></li>
-			</ul>
-
-			</li>
-			<li><a title="Maps" href="?/gis/index.cfm">Maps</a></li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Outdoor Facilities" href="?outdoor_facilities.cfm">Outdoor Facilities</a>
-			<ul style="display: none;">
-
-				<li><a title="Ball Diamonds" href="?ball_diamonds.cfm">Ball Diamonds</a></li>
-				<li><a title="BMX Track" href="?bmx_track.cfm">BMX Track</a></li>
-
-				<li><a title="Bookings" href="?bookings.cfm">Bookings</a></li>
-				<li><a title="Cemetery" href="?cemetery.cfm">Cemetery</a></li>
-				<li><a title="Fire Pits" href="?fire_pits.cfm">Fire Pits</a></li>
-				<li><a title="Gwacheon Park" href="?/twinning_program/index.cfm#gwacheon">Gwacheon Park</a></li>
-
-				<li><a title="Off-Leash Areas" href="?off_leash_areas.cfm">Off-Leash Areas</a></li>
-				<li><a title="Outdoor Rinks" href="?outdoor_rinks.cfm">Outdoor Rinks</a></li>
-
-				<li><a title="Parks &amp; Playgrounds" href="?parks_playgrounds.cfm">Parks &amp; Playgrounds</a></li>
-				<li><a title="Skate Park" href="?skate_park.cfm">Skate Park</a></li>
-				<li><a title="Soccer/Athletic Fields" href="?soccer_athletic_fields.cfm">Soccer/Athletic Fields</a></li>
-				<li><a title="Splash Park" href="?splash_park.cfm">Splash Park</a></li>
-
-				<li class="last"><a title="Tennis Courts" href="?tennis_courts.cfm">Tennis Courts</a></li>
-
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Parks Planning &amp; Construction" href="?parks_planning_construction.cfm">Parks Planning &amp; Construction</a>
-			<ul style="display: none;">
-				<li><a href="?construction.cfm" title="Construction">Construction</a></li>
-				<li class="last"><a href="?plans.cfm" title="Plans">Plans</a></li>
-
-			</ul>
-			</li>
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Urban Forest" href="?urban_forest.cfm">Urban Forest</a>
-			<ul style="display: none;">
-				<li><a href="?city_trees.cfm" title="City Trees">City Trees</a></li>
-				<li class="last"><a href="?tree_planting.cfm" title="Tree Planting">Tree Planting</a></li>
-			</ul>
-
-			</li>
-			<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><a title="Weeds &amp; Pests" href="?weeds_pests.cfm">Weeds &amp; Pests</a>
-			<ul style="display: none;">
-				<li><a href="?mosquito_control.cfm" title="Mosquito Control">Mosquito Control</a></li>
-				<li><a href="?pest_control.cfm" title="Pest Control">Pest Control</a></li>
-				<li class="last"><a href="?weed_control_plant_disease.cfm" title="Weed Control &amp; Plant Disease">Weed Control &amp; Plant Disease</a></li>
-
-			</ul>
-			</li>
-		</ul>
-		</li>
-		<li class="expandable lastExpandable"><div class="hitarea expandable-hitarea lastExpandable-hitarea"></div><a title="Sport &amp; Community Facilities" href="?/sport_community_facilities/index.cfm">Sport &amp; Community Facilities</a>
-		<ul style="display: none;">
-			<li class="expandable"><div class="hitarea expandable-hitarea"></div><a title="Indoor Facilities" href="?/sport_community_facilities/indoor_facilities.cfm">Indoor Facilities</a>
-
-			<ul style="display: none;">
-				<li><a title="Arenas/Gymnastics" href="?/sport_community_facilities/arenas_gymnastics.cfm">Arenas/Gymnastics</a></li>
-				<li><a title="Curling Rink" href="?/sport_community_facilities/curling_rink.cfm">Curling Rink</a></li>
-				<li><a title="East Lake Recreation &amp; Wellness Centre" href="?/elrwc/index.cfm">East Lake Recreation &amp; Wellness Centre</a></li>
-				<li><a title="Nose Creek Valley Museum" href="?/sport_community_facilities/nose_creek_valley_museum.cfm">Nose Creek Valley Museum</a></li>
-
-				<li><a title="Over 50 Club" href="?/sport_community_facilities/over_50_club.cfm">Over 50 Club</a></li>
-
-				<li class="last"><a title="Town &amp; Country" href="?/sport_community_facilities/town_country.cfm">Town &amp; Country</a></li>
-			</ul>
-			</li>
-			<li class="last"><a title="Outdoor Facilities" href="?/parks/outdoor_facilities.cfm">Outdoor Facilities</a></li>
-		</ul>
-
-		</li>
-	</ul>
-
-	</li>
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><strong><a href="?#">Visiting</a></strong>
-	<ul style="display: none;">
-		<li><a href="?/economic_development/video/index.cfm">Airdrie LIFE Video</a></li>
-		<li><a href="?/gis/recreation_map/index.cfm">Community Map</a></li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/events/index.cfm">Events</a>
-		<ul style="display: none;">
-
-			<li><a href="?http://www.airdriefestivaloflights.com" target="_new">Airdrie Festival of Lights</a></li>
-			<li><a href="?http://www.airdrieprorodeo.net/" target="_new">Airdrie Pro Rodeo</a></li>
-			<li class="last"><a href="?http://www.pch.gc.ca/special/canada/index_e.cfm" target="_new">Canada Day</a></li>
-		</ul>
-
-		</li>
-		<li><a href="?/parks/parks_recreation.cfm">Parks &amp; Recreation</a></li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/economic_development/tourist_information/tourist_information.cfm">Tourist Information</a>
-		<ul style="display: none;">
-			<li><a href="?/economic_development/entertainment/entertainment.cfm">Entertainment</a></li>
-			<li><a href="?/economic_development/hotels/hotels.cfm">Hotels</a></li>
-
-			<li><a href="?/economic_development/restaurants/restaurants.cfm">Restaurants</a></li>
-			<li><a href="?/economic_development/shopping/shopping.cfm">Shopping</a></li>
-
-			<li class="last"><a href="?http://www1.travelalberta.com/en-ab/index.cfm?country=CA&amp;state=AB&amp;setlocale=1" target="_new">Travel Alberta</a></li>
-		</ul>
-		</li>
-		<li class="last"><a href="?http://www.woodsidegc.com/contact.html" target="_new">Woodside Golf Course</a></li>
-
-	</ul>
-	</li>
-	<li class="expandable"><div class="hitarea expandable-hitarea"></div><strong><a href="?/economic_development/index.cfm">Doing Business</a></strong>
-
-	<ul style="display: none;">
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/economic_development/business_attraction/index.cfm">Business Attraction</a>
-		<ul style="display: none;">
-			<li><a href="?http://www.albertafirst.com/profiles/statspack/20365.html" target="_new">Airdrie Profile</a></li>
-
-			<li><a href="?/economic_development/business_attraction/business_case.cfm">Business Case For Airdrie</a></li>
-			<li><a href="?/economic_development/census/index.cfm">Census Data </a></li>
-			<li><a href="?http://www.albertafirst.com/realestate/" target="_new">Properties and Businesses For Sale</a></li>
-
-			<li class="last"><a href="?/taxation/non_residential_comparisons.cfm">Taxation</a></li>
-		</ul>
-		</li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/economic_development/business_development/index.cfm">Business Development</a>
-		<ul style="display: none;">
-			<li><a href="?/economic_development/business_development/business_associations.cfm">Business Associations</a></li>
-			<li><a href="?/economic_development/business_development/business_resources.cfm">Business Resources</a></li>
-
-			<li><a href="?/economic_development/business_development/business_services.cfm">Business Services</a></li>
-			<li><a href="?/corporate_properties/index.cfm">Corporate Properties</a></li>
-
-			<li class="last"><a href="?/economic_development/business_development/home_businesses.cfm">Home Based Businesses</a></li>
-		</ul>
-		</li>
-		<li><a href="?/directories/business_directory/index.cfm">Business Directory</a></li>
-
-		<li class="expandable"><div class="hitarea expandable-hitarea"></div><a href="?/economic_development/business_licenses/index.cfm">Business Licenses</a>
-		<ul style="display: none;">
-			<li><a href="?/economic_development/business_licenses/municipal_licenses_permits.cfm">Municipal Licenses &amp; Permits</a></li>
-
-			<li><a href="?/economic_development/business_licenses/provincial_licenses_permits.cfm">Provincial Licenses &amp; Permits</a></li>
-			<li class="last"><a href="?/economic_development/business_licenses/registry_services.cfm">Registry Services</a></li>
-
-		</ul>
-		</li>
-		<li><a href="?http://bsa.canadabusiness.ca/gol/bsa/site.nsf/en/index.html" target="_new">How to Start a Business</a></li>
-		<li class="last"><a href="?/finance/procurement_services.cfm">Procurement Services</a></li>
-
-	</ul>
-	</li>
-	<li class="last"><strong><a href="?https://vch.airdrie.ca/index.cfm">Online Services</a></strong></li>
-
-</ul>
-</div>
-
-</div>
-
-</body>
-
-</html>
diff --git a/src/public/javascripts/jquery-treeview/demo/screen.css b/src/public/javascripts/jquery-treeview/demo/screen.css
deleted file mode 100644
index fcedc63..0000000
--- a/src/public/javascripts/jquery-treeview/demo/screen.css
+++ /dev/null
@@ -1,24 +0,0 @@
-html, body {height:100%; margin: 0; padding: 0; }
-
-html>body {
-	font-size: 16px; 
-	font-size: 68.75%;
-} /* Reset Base Font Size */
-
-body {
-	font-family: Verdana, helvetica, arial, sans-serif;
-	font-size: 68.75%;
-	background: #fff;
-	color: #333;
-}
-
-h1, h2 { font-family: 'trebuchet ms', verdana, arial; padding: 10px; margin: 0 }
-h1 { font-size: large }
-
-#banner { padding: 15px; background-color: #06b; color: white; font-size: large; border-bottom: 1px solid #ccc;
-    background: url(bg.gif) repeat-x; text-align: center }
-#banner a { color: white; }
-
-#main { padding: 1em; }
-
-a img { border: none; }
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/simple.html b/src/public/javascripts/jquery-treeview/demo/simple.html
deleted file mode 100644
index 7ec6c8b..0000000
--- a/src/public/javascripts/jquery-treeview/demo/simple.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-	<title>jQuery treeView</title>
-	
-	<link rel="stylesheet" href="../jquery.treeview.css" />
-    <link rel="stylesheet" href="../red-treeview.css" />
-	<link rel="stylesheet" href="screen.css" />
-	
-	<script src="../lib/jquery.js" type="text/javascript"></script>
-	<script src="../lib/jquery.cookie.js" type="text/javascript"></script>
-	<script src="../jquery.treeview.js" type="text/javascript"></script>
-	
-	<script type="text/javascript">
-	$(document).ready(function(){
-		$("#browser").treeview({
-			toggle: function() {
-				console.log("%s was toggled.", $(this).find(">span").text());
-			}
-		});
-		
-		$("#add").click(function() {
-			var branches = $("<li><span class='folder'>New Sublist</span><ul>" + 
-				"<li><span class='file'>Item1</span></li>" + 
-				"<li><span class='file'>Item2</span></li></ul></li>").appendTo("#browser");
-			$("#browser").treeview({
-				add: branches
-			});
-		});
-	});
-	</script>
-	</head>
-	<body>
-	
-	<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Treeview Plugin</a> Demo</h1>
-	<div id="main">
-	
-	<a href=".">Main Demo</a>
-		
-	<ul id="browser" class="filetree treeview-famfamfam">
-		<li><span class="folder">Folder 1</span>
-			<ul>
-				<li><span class="folder">Item 1.1</span>
-					<ul>
-						<li><span class="file">Item 1.1.1</span></li>
-					</ul>
-				</li>
-				<li><span class="folder">Folder 2</span>
-					<ul>
-						<li><span class="folder">Subfolder 2.1</span>
-							<ul id="folder21">
-								<li><span class="file">File 2.1.1</span></li>
-								<li><span class="file">File 2.1.2</span></li>
-							</ul>
-						</li>
-						<li><span class="folder">Subfolder 2.2</span>
-							<ul>
-								<li><span class="file">File 2.2.1</span></li>
-								<li><span class="file">File 2.2.2</span></li>
-							</ul>
-						</li>
-					</ul>
-				</li>
-				<li class="closed"><span class="folder">Folder 3 (closed at start)</span>
-					<ul>
-						<li><span class="file">File 3.1</span></li>
-					</ul>
-				</li>
-				<li><span class="file">File 4</span></li>
-			</ul>
-		</li>
-	</ul>
-	
-	<button id="add">Add!</button>
-	
-	<p>+/- Icons from <a href="http://www.famfamfam.com/lab/icons/">famfamfam</a></p>
-	
-</div>
- 
-</body></html>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/source.php b/src/public/javascripts/jquery-treeview/demo/source.php
deleted file mode 100644
index b6aeca1..0000000
--- a/src/public/javascripts/jquery-treeview/demo/source.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-if ($_REQUEST['root'] == "source"):
-?>
-[
-	{
-		"text": "1. Pre Lunch (120 min)",
-		"expanded": true,
-		"classes": "important",
-		"children":
-		[
-			{
-				"text": "1.1 The State of the Powerdome (30 min)"
-			},
-		 	{
-				"text": "1.2 The Future of jQuery (30 min)"
-			},
-		 	{
-				"text": "1.2 jQuery UI - A step to richnessy (60 min)"
-			}
-		]
-	},
-	{
-		"text": "2. Lunch  (60 min)"
-	},
-	{
-		"text": "3. After Lunch  (120+ min)",
-		"children":
-		[
-			{
-				"text": "3.1 jQuery Calendar Success Story (20 min)"
-			},
-		 	{
-				"text": "3.2 jQuery and Ruby Web Frameworks (20 min)"
-			},
-		 	{
-				"text": "3.3 Hey, I Can Do That! (20 min)"
-			},
-		 	{
-				"text": "3.4 Taconite and Form (20 min)"
-			},
-		 	{
-				"text": "3.5 Server-side JavaScript with jQuery and AOLserver (20 min)"
-			},
-		 	{
-				"text": "3.6 The Onion: How to add features without adding features (20 min)",
-				"id": "36",
-				"hasChildren": true
-			},
-		 	{
-				"text": "3.7 Visualizations with JavaScript and Canvas (20 min)"
-			},
-		 	{
-				"text": "3.8 ActiveDOM (20 min)"
-			},
-		 	{
-				"text": "3.8 Growing jQuery (20 min)"
-			}
-		]
-	}
-]
-<?php else: ?>
-[
-	{
-		"text": "1. Review of existing structures",
-		"expanded": true,
-		"children":
-		[
-			{
-				"text": "1.1 jQuery core"
-			},
-		 	{
-				"text": "1.2 metaplugins"
-			}
-		]
-	},
-	{
-		"text": "2. Wrapper plugins"
-	},
-	{
-		"text": "3. Summary"
-	},
-	{
-		"text": "4. Questions and answers"
-	}
-	
-]
-<?php endif; ?>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/demo/source.phps b/src/public/javascripts/jquery-treeview/demo/source.phps
deleted file mode 100644
index b6aeca1..0000000
--- a/src/public/javascripts/jquery-treeview/demo/source.phps
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-if ($_REQUEST['root'] == "source"):
-?>
-[
-	{
-		"text": "1. Pre Lunch (120 min)",
-		"expanded": true,
-		"classes": "important",
-		"children":
-		[
-			{
-				"text": "1.1 The State of the Powerdome (30 min)"
-			},
-		 	{
-				"text": "1.2 The Future of jQuery (30 min)"
-			},
-		 	{
-				"text": "1.2 jQuery UI - A step to richnessy (60 min)"
-			}
-		]
-	},
-	{
-		"text": "2. Lunch  (60 min)"
-	},
-	{
-		"text": "3. After Lunch  (120+ min)",
-		"children":
-		[
-			{
-				"text": "3.1 jQuery Calendar Success Story (20 min)"
-			},
-		 	{
-				"text": "3.2 jQuery and Ruby Web Frameworks (20 min)"
-			},
-		 	{
-				"text": "3.3 Hey, I Can Do That! (20 min)"
-			},
-		 	{
-				"text": "3.4 Taconite and Form (20 min)"
-			},
-		 	{
-				"text": "3.5 Server-side JavaScript with jQuery and AOLserver (20 min)"
-			},
-		 	{
-				"text": "3.6 The Onion: How to add features without adding features (20 min)",
-				"id": "36",
-				"hasChildren": true
-			},
-		 	{
-				"text": "3.7 Visualizations with JavaScript and Canvas (20 min)"
-			},
-		 	{
-				"text": "3.8 ActiveDOM (20 min)"
-			},
-		 	{
-				"text": "3.8 Growing jQuery (20 min)"
-			}
-		]
-	}
-]
-<?php else: ?>
-[
-	{
-		"text": "1. Review of existing structures",
-		"expanded": true,
-		"children":
-		[
-			{
-				"text": "1.1 jQuery core"
-			},
-		 	{
-				"text": "1.2 metaplugins"
-			}
-		]
-	},
-	{
-		"text": "2. Wrapper plugins"
-	},
-	{
-		"text": "3. Summary"
-	},
-	{
-		"text": "4. Questions and answers"
-	}
-	
-]
-<?php endif; ?>
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/images/ajax-loader.gif b/src/public/javascripts/jquery-treeview/images/ajax-loader.gif
deleted file mode 100644
index bc545850add6bc46ed3eca7b55445c4a99362a7c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/elbow-minus-nl.gif b/src/public/javascripts/jquery-treeview/images/elbow-minus-nl.gif
deleted file mode 100644
index 928779e92361aaebfe9446b236d95cb64256e443..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/elbow-plus-nl.gif b/src/public/javascripts/jquery-treeview/images/elbow-plus-nl.gif
deleted file mode 100644
index 9f7f69880f48db8d86785639055fcc198764617b..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/file.gif b/src/public/javascripts/jquery-treeview/images/file.gif
deleted file mode 100644
index 7e6216798f8e5abfc81a2fe2e5cb32b7a2d82e10..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/folder-closed.gif b/src/public/javascripts/jquery-treeview/images/folder-closed.gif
deleted file mode 100644
index 541107888e6739a7b367ad3d208e1efa933f877d..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/folder.gif b/src/public/javascripts/jquery-treeview/images/folder.gif
deleted file mode 100644
index 2b31631ca2bfec3a8afb1bfdd4f8ed4c5bcc3a18..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/icon_hdwarepool.png b/src/public/javascripts/jquery-treeview/images/icon_hdwarepool.png
deleted file mode 100644
index 76e0a288ebacf3ff615763f12bb2b3f53a27abc4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/icon_hdwarepool_disabled.png b/src/public/javascripts/jquery-treeview/images/icon_hdwarepool_disabled.png
deleted file mode 100644
index 513c39def028f236656d0c7bde26e3faf2effc94..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/icon_vmpool.png b/src/public/javascripts/jquery-treeview/images/icon_vmpool.png
deleted file mode 100644
index 799ea30473c8285df75f4911d06dcf7440b0ad7e..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/icon_vmpool_disabled.png b/src/public/javascripts/jquery-treeview/images/icon_vmpool_disabled.png
deleted file mode 100644
index 899bf8558003ce8868e1fc1aeb7e8d1a79f93df4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/minus.gif b/src/public/javascripts/jquery-treeview/images/minus.gif
deleted file mode 100644
index 47fb7b767c4e4659c2b42130a2dd7f46dd9a74eb..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/plus.gif b/src/public/javascripts/jquery-treeview/images/plus.gif
deleted file mode 100644
index 6906621627d48e3008a71dd6de6e4f9763da59f9..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-black-line.gif b/src/public/javascripts/jquery-treeview/images/treeview-black-line.gif
deleted file mode 100644
index e5496877a07487f2f7437a9f87e07c590b51160a..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-black.gif b/src/public/javascripts/jquery-treeview/images/treeview-black.gif
deleted file mode 100644
index d549b9fc56ced0c90bb7ed01c77be78b67fd8d67..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-default-line.gif b/src/public/javascripts/jquery-treeview/images/treeview-default-line.gif
deleted file mode 100644
index 37114d3068e0a787dd44a39430a8fc44d1963dcf..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-default.gif b/src/public/javascripts/jquery-treeview/images/treeview-default.gif
deleted file mode 100644
index a12ac52ffe4d085657aaf45db3cf5717c751230c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-famfamfam-line.gif b/src/public/javascripts/jquery-treeview/images/treeview-famfamfam-line.gif
deleted file mode 100644
index 6e289cecc51b59a01c1278ce95653badf4e643de..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-famfamfam.gif b/src/public/javascripts/jquery-treeview/images/treeview-famfamfam.gif
deleted file mode 100644
index 9372b8a849fba4347d609c43e4e26e149ac191cb..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-gray-line.gif b/src/public/javascripts/jquery-treeview/images/treeview-gray-line.gif
deleted file mode 100644
index 37600447dc002bbc0dd16e1391b711360aae2e34..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-gray.gif b/src/public/javascripts/jquery-treeview/images/treeview-gray.gif
deleted file mode 100644
index cfb8a2f0961b880d9ecc9e59f831d0c0bf9d06db..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-red-line.gif b/src/public/javascripts/jquery-treeview/images/treeview-red-line.gif
deleted file mode 100644
index df9e749a8f1f58862588efc64988003efad01d51..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/images/treeview-red.gif b/src/public/javascripts/jquery-treeview/images/treeview-red.gif
deleted file mode 100644
index 3bbb3a157f1568d59d6db02b55a3b3fe9a1ff7a7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/javascripts/jquery-treeview/jquery.ovirt.treeview.css b/src/public/javascripts/jquery-treeview/jquery.ovirt.treeview.css
deleted file mode 100644
index 6a512dc..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.ovirt.treeview.css
+++ /dev/null
@@ -1,75 +0,0 @@
-.treeview, .treeview ul { 
-	padding: 0;
-	margin: 0;
-	list-style: none;
-}
-
-.treeview ul {
-	background-color: white;
-	margin-top: 4px;
-}
-
-.treeview .hitarea {
-	background: url(images/treeview-default.gif) -64px -25px no-repeat;
-	height: 16px;
-	width: 16px;
-	margin-left: -16px;
-	float: left;
-	cursor: pointer;
-}
-/* fix for IE6 */
-* html .hitarea {
-	display: inline;
-	float:none;
-}
-
-.treeview li { 
-	margin: 0;
-	padding: 3px 0pt 3px 16px;
-}
-
-.treeview a.selected {
-	background-color: #eee;
-}
-
-#treecontrol { margin: 1em 0; display: none; }
-
-.treeview .hover { color: red; cursor: pointer; }
-
-.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
-.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
-
-.treeview .expandable-hitarea { background-position: -80px -3px; }
-
-.treeview li.last { background-position: 0 -1766px }
-.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); }  
-.treeview li.lastCollapsable { background-position: 0 -111px }
-.treeview li.lastExpandable { background-position: -32px -67px }
-
-.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
-
-.treeview-red li { background-image: url(images/treeview-red-line.gif); }
-.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); } 
-
-.treeview-black li { background-image: url(images/treeview-black-line.gif); }
-.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); }  
-
-.treeview-gray li { background-image: url(images/treeview-gray-line.gif); }
-.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); } 
-
-.treeview-ovirt li { background-image: url(images/treeview-famfamfam-line.gif); }
-.treeview-ovirt .hitarea, .treeview-ovirt li.lastCollapsable, .treeview-ovirt li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } 
-
-.treeview .placeholder {
-	background: url(images/ajax-loader.gif) 0 0 no-repeat;
-	height: 16px;
-	width: 16px;
-	display: block;
-}
-
-.filetree li { padding: 3px 0 2px 16px; }
-.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
-.filetree span.folder { background: url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-.filetree li.expandable span.folder { background: url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-.filetree span.file { background: url(images/icon_vmpool.png) 0 0 no-repeat; }
-
diff --git a/src/public/javascripts/jquery-treeview/jquery.treeview.async.js b/src/public/javascripts/jquery-treeview/jquery.treeview.async.js
deleted file mode 100644
index 4dacda6..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.treeview.async.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Async Treeview 0.1 - Lazy-loading extension for Treeview
- * 
- * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
- *
- * Copyright (c) 2007 Jörn Zaefferer
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id$
- *
- */
-
-;(function($) {
-
-function load(settings, params, child, container) {    
-        $.getJSON(settings.url, params, function(response) { //{id: root}            
-		function createNode(parent) {                  
-                        if (this.type=="HardwarePool") {
-                            settings.link_to=settings.hardware_url 
-                            settings.span_class="folder";
-                            settings.current_class = settings.current + "_folder";
-                        } else {
-                            settings.link_to=settings.resource_url;
-                            settings.span_class="file";
-                            settings.current_class = settings.current + "_file";
-                        }                        
-			var link_open;
-			var link_close;
-			var span_onclick;
-			var current = $("<li/>").attr("id", this.id || "");
-			if (settings.action_type=="hyperlink"){
-			    link_open = "<a href=\"" + settings.link_to + "/" + this.id + "\">";
-			    link_close =  "</a>";
-			} else {
-			    link_open  = "";
-			    link_close = "";
-			}
-			if (settings.action_type=="javascript"){
-			    span_onclick = " onClick=\"" + settings.onclick + "(" + this.id + ")\" ";
-   		        } else {
-			    span_onclick = ""
-		        }
-                        if (settings.current_pool_id==this.id || !((settings.disabled_pools == undefined) || ($.inArray(this.id,settings.disabled_pools)==-1))) {
-                          current.html("<span class=\"" + settings.current_class + ">" + this.text  + "</span>")
-                            .appendTo(parent);
-                        } else {
-                          current.html("<span class=\"" + settings.span_class + "\"" + span_onclick + ">" + link_open + this.text + link_close + "</span>")
-                            .appendTo(parent);
-//                          $('li #' + this.id + ' span > a')
-//                            .bind('click', function() { 
-//                              $.ajax({
-//                                url: this.href,
-//                                type: 'GET',
-//                                data: {ajax:true},
-//                                dataType: 'html',
-//                                success: function(data) { 
-//                                  var wrapped_data = $(data).not('div#side-toolbar');//.find('#navigation-tabs');
-//                                  $('#side-toolbar').html($(data).find('div.toolbar'));
-//                                  $('#tabs-and-content-container').html($(data).not('div#side-toolbar'));
-//                                },
-//                                error: function(xhr) {alert(xhr.status + ' ' + xhr.statusText);}
-//                              })
-//                              return false;
-//                            });
-
-                        }
-			if (this.classes) {
-				current.children("span").addClass(this.classes);
-			}
-			if (this.expanded) {
-				current.addClass("open");
-			}                        
-			if (this.hasChildren || this.children && this.children.length) {
-				var branch = $("<ul/>").appendTo(current);
-				if (this.hasChildren) {
-					current.addClass("hasChildren");
-					//createNode.call({
-						//classes:"placeholder",
-                                        //        text:"&nbsp;",
-					//	children:[]
-					//}, branch);
-				}
-				if (this.children && this.children.length) {
-					$.each(this.children, createNode, [branch])
-				}
-			}
-		} 
-                $.each(response, createNode, [child]);
-                $(container).treeview({add: child});
-    });
-}
-
-var proxied = $.fn.treeview;
-$.fn.asynch_treeview = function(settings) {
-	if (!settings.url) {
-		return proxied.apply(this, arguments);
-	}
-	var container = this;
-        settings.current_pool_id!=""?settings.params={current_id:settings.current_pool_id}:settings.params=null;
-	load(settings, settings.params, this, container);        
-	var userToggle = settings.toggle;
-	return proxied.call(this, $.extend({}, settings, {
-		collapsed: true,
-		toggle: function() {
-			var $this = $(this);
-			if ($this.hasClass("hasChildren")) {
-				var childList = $this.removeClass("hasChildren").find("ul");
-                                childList.empty();
-				load(settings, {id:this.id}, childList, container);
-			}
-			if (userToggle) {
-				userToggle.apply(this, arguments);
-			}
-		}
-	}));
-};
-
-})(jQuery);
diff --git a/src/public/javascripts/jquery-treeview/jquery.treeview.css b/src/public/javascripts/jquery-treeview/jquery.treeview.css
deleted file mode 100644
index ceb3371..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.treeview.css
+++ /dev/null
@@ -1,81 +0,0 @@
-.treeview, .treeview ul { 
-	padding: 0;
-	margin: 0;
-	list-style: none;
-}
-
-.treeview ul {
-	background-color: white;
-	margin-top: 4px;
-}
-
-.treeview .hitarea {
-	background: url(images/treeview-default.gif) -64px -25px no-repeat;
-	height: 16px;
-	width: 16px;
-	margin-left: -16px;
-	float: left;
-	cursor: pointer;
-}
-/* fix for IE6 */
-* html .hitarea {
-	display: inline;
-	float:none;
-}
-
-.treeview li { 
-	margin: 0;
-	padding: 3px 0pt 3px 16px;
-}
-
-.treeview a.selected {
-	background-color: #eee;
-}
-
-#treecontrol { margin: 1em 0; display: none; }
-
-.treeview .hover { color: red; cursor: pointer; }
-
-.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
-.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
-
-.treeview .expandable-hitarea { background-position: -80px -3px; }
-
-.treeview li.last { background-position: 0 -1766px }
-.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); }  
-.treeview li.lastCollapsable { background-position: 0 -111px }
-.treeview li.lastExpandable { background-position: -32px -67px }
-
-.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
-
-.treeview-red li { background-image: url(images/treeview-red-line.gif); }
-.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); } 
-
-.treeview-black li { background-image: url(images/treeview-black-line.gif); }
-.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); }  
-
-.treeview-gray li { background-image: url(images/treeview-gray-line.gif); }
-.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); } 
-
-.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); }
-.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } 
-
-
-.filetree li { padding: 3px 0 2px 16px; }
-.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
-.filetree span.folder { background: url(images/folder.gif) 0 0 no-repeat; }
-.filetree li.expandable span.folder { background: url(images/folder-closed.gif) 0 0 no-repeat; }
-.filetree span.file { background: url(images/file.gif) 0 0 no-repeat; }
-
-.current_folder { padding: 6px 0pt 5px 28px; background:#698FA6 url(images/icon_hdwarepool.png) 4px 2px no-repeat; color:#FFFFFF; display:block; }
-.current_folder a {color:#FFFFFF; }
-
-
-.current_file { padding: 6px 0pt 5px 28px; background:#698FA6 url(images/icon_vmpool.png) 4px 2px no-repeat; color:#FFFFFF; display:block; }
-.current_file a {color:#FFFFFF;}
-
-.disabled_folder { padding: 4px 0pt 5px 24px; background: url(images/icon_hdwarepool_disabled.png) 0 0 no-repeat; color:#FFFFFF; display:block; }
-.disabled_folder a {color:#CCCCCC; }
-
-.disabled_file { padding: 4px 0pt 5px 24px; background: url(images/icon_vmpool_disabled.png) 0 0 no-repeat; color:#FFFFFF; display:block; }
-.disabled_file a {color:#CCCCCC;}
diff --git a/src/public/javascripts/jquery-treeview/jquery.treeview.js b/src/public/javascripts/jquery-treeview/jquery.treeview.js
deleted file mode 100644
index bc5d9e4..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.treeview.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
- * 
- * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
- * http://docs.jquery.com/Plugins/Treeview
- *
- * Copyright (c) 2007 Jörn Zaefferer
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $
- *
- */
-
-;(function($) {
-
-	$.extend($.fn, {
-		swapClass: function(c1, c2) {
-			var c1Elements = this.filter('.' + c1);
-			this.filter('.' + c2).removeClass(c2).addClass(c1);
-			c1Elements.removeClass(c1).addClass(c2);
-			return this;
-		},
-		replaceClass: function(c1, c2) {
-			return this.filter('.' + c1).removeClass(c1).addClass(c2).end();
-		},
-		hoverClass: function(className) {
-			className = className || "hover";
-			return this.hover(function() {
-				$(this).addClass(className);
-			}, function() {
-				$(this).removeClass(className);
-			});
-		},
-		heightToggle: function(animated, callback) {
-			animated ?
-				this.animate({ height: "toggle" }, animated, callback) :
-				this.each(function(){
-					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
-					if(callback)
-						callback.apply(this, arguments);
-				});
-		},
-		heightHide: function(animated, callback) {
-			if (animated) {
-				this.animate({ height: "hide" }, animated, callback);
-			} else {
-				this.hide();
-				if (callback)
-					this.each(callback);				
-			}
-		},
-		prepareBranches: function(settings) {
-			if (!settings.prerendered) {
-				// mark last tree items
-				this.filter(":last-child:not(ul)").addClass(CLASSES.last);
-				// collapse whole tree, or only those marked as closed, anyway except those marked as open
-				this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide();
-			}
-			// return all items with sublists
-			return this.filter(":has(>ul)");
-		},
-		applyClasses: function(settings, toggler) {
-			this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
-				toggler.apply($(this).next());
-			}).add( $("a", this) ).hoverClass();
-			
-			if (!settings.prerendered) {
-				// handle closed ones first
-				this.filter(":has(>ul:hidden)")
-						.addClass(CLASSES.expandable)
-						.replaceClass(CLASSES.last, CLASSES.lastExpandable);
-						
-				// handle open ones
-				this.not(":has(>ul:hidden)")
-						.addClass(CLASSES.collapsable)
-						.replaceClass(CLASSES.last, CLASSES.lastCollapsable);
-						
-	            // create hitarea
-				this.prepend("<div class=\"" + CLASSES.hitarea + "\"/>").find("div." + CLASSES.hitarea).each(function() {
-					var classes = "";
-					$.each($(this).parent().attr("class").split(" "), function() {
-						classes += this + "-hitarea ";
-					});
-					$(this).addClass( classes );
-				});
-			}
-			
-			// apply event to hitarea
-			this.find("div." + CLASSES.hitarea).click( toggler );
-		},
-		treeview: function(settings) {
-			
-			settings = $.extend({
-				cookieId: "treeview"
-			}, settings);
-			
-			if (settings.add) {
-				return this.trigger("add", [settings.add]);
-			}
-			
-			if ( settings.toggle ) {
-				var callback = settings.toggle;
-				settings.toggle = function() {
-					return callback.apply($(this).parent()[0], arguments);
-				};
-			}
-		
-			// factory for treecontroller
-			function treeController(tree, control) {
-				// factory for click handlers
-				function handler(filter) {
-					return function() {
-						// reuse toggle event handler, applying the elements to toggle
-						// start searching for all hitareas
-						toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() {
-							// for plain toggle, no filter is provided, otherwise we need to check the parent element
-							return filter ? $(this).parent("." + filter).length : true;
-						}) );
-						return false;
-					};
-				}
-				// click on first element to collapse tree
-				$("a:eq(0)", control).click( handler(CLASSES.collapsable) );
-				// click on second to expand tree
-				$("a:eq(1)", control).click( handler(CLASSES.expandable) );
-				// click on third to toggle tree
-				$("a:eq(2)", control).click( handler() ); 
-			}
-		
-			// handle toggle event
-			function toggler() {
-				$(this)
-					.parent()
-					// swap classes for hitarea
-					.find(">.hitarea")
-						.swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
-						.swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
-					.end()
-					// swap classes for parent li
-					.swapClass( CLASSES.collapsable, CLASSES.expandable )
-					.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
-					// find child lists
-					.find( ">ul" )
-					// toggle them
-					.heightToggle( settings.animated, settings.toggle );
-				if ( settings.unique ) {
-					$(this).parent()
-						.siblings()
-						// swap classes for hitarea
-						.find(">.hitarea")
-							.replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
-							.replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
-						.end()
-						.replaceClass( CLASSES.collapsable, CLASSES.expandable )
-						.replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
-						.find( ">ul" )
-						.heightHide( settings.animated, settings.toggle );
-				}
-			}
-			
-			function serialize() {
-				function binary(arg) {
-					return arg ? 1 : 0;
-				}
-				var data = [];
-				branches.each(function(i, e) {
-					data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
-				});
-				$.cookie(settings.cookieId, data.join("") );
-			}
-			
-			function deserialize() {
-				var stored = $.cookie(settings.cookieId);
-				if ( stored ) {
-					var data = stored.split("");
-					branches.each(function(i, e) {
-						$(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ]();
-					});
-				}
-			}
-			
-			// add treeview class to activate styles
-			this.addClass("treeview");
-			
-			// prepare branches and find all tree items with child lists
-			var branches = this.find("li").prepareBranches(settings);
-			
-			switch(settings.persist) {
-			case "cookie":
-				var toggleCallback = settings.toggle;
-				settings.toggle = function() {
-					serialize();
-					if (toggleCallback) {
-						toggleCallback.apply(this, arguments);
-					}
-				};
-				deserialize();
-				break;
-			case "location":
-				var current = this.find("a").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); });
-				if ( current.length ) {
-					current.addClass("selected").parents("ul, li").add( current.next() ).show();
-				}
-				break;
-			}
-			
-			branches.applyClasses(settings, toggler);
-				
-			// if control option is set, create the treecontroller and show it
-			if ( settings.control ) {
-				treeController(this, settings.control);
-				$(settings.control).show();
-			}
-			
-			return this.bind("add", function(event, branches) {
-				$(branches).prev()
-					.removeClass(CLASSES.last)
-					.removeClass(CLASSES.lastCollapsable)
-					.removeClass(CLASSES.lastExpandable)
-				.find(">.hitarea")
-					.removeClass(CLASSES.lastCollapsableHitarea)
-					.removeClass(CLASSES.lastExpandableHitarea);
-				$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, toggler);
-			});
-		}
-	});
-	
-	// classes used by the plugin
-	// need to be styled via external stylesheet, see first example
-	var CLASSES = $.fn.treeview.classes = {
-		open: "open",
-		closed: "closed",
-		expandable: "expandable",
-		expandableHitarea: "expandable-hitarea",
-		lastExpandableHitarea: "lastExpandable-hitarea",
-		collapsable: "collapsable",
-		collapsableHitarea: "collapsable-hitarea",
-		lastCollapsableHitarea: "lastCollapsable-hitarea",
-		lastCollapsable: "lastCollapsable",
-		lastExpandable: "lastExpandable",
-		last: "last",
-		hitarea: "hitarea"
-	};
-	
-	// provide backwards compability
-	$.fn.Treeview = $.fn.treeview;
-	
-})(jQuery);
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/jquery.treeview.min.js b/src/public/javascripts/jquery-treeview/jquery.treeview.min.js
deleted file mode 100644
index 96202d9..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.treeview.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
- * 
- * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
- * http://docs.jquery.com/Plugins/Treeview
- *
- * Copyright (c) 2007 Jörn Zaefferer
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $
- *
- */;(function($){$.extend($.fn,{swapClass:function(c1,c2){var c1Elements=this.filter('.'+c1);this.filter('.'+c2).removeClass(c2).addClass(c1);c1Elements.removeClass(c1).addClass(c2);return this;},replaceClass:function(c1,c2){return this.filter('.'+c1).removeClass(c1).addClass(c2).end();},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(animated,callback){animated?this.animate({height:"toggle"},animated,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)callback.apply(this,arguments);});},heightHide:function(animated,callback){if(animated){this.animate({height:"hide"},animated,callback);}else{this.hide();if(callback)this.each(callback);}},prepareBranches:function(settings){if(!settings.prerendered){this.filter(":last-child:not(ul)").addClass(CLASSES.last);this.filter((settings.collapsed?"":"."+CLASSES.closed)+":not(."+CLASSES.open+")").find(">ul").hide();}return this.filter(":has(>ul)");},applyClasses:function(settings,toggler){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event){toggler.apply($(this).next());}).add($("a",this)).hoverClass();if(!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable);this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);this.prepend("<div class=\""+CLASSES.hitarea+"\"/>").find("div."+CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea ";});$(this).addClass(classes);});}this.find("div."+CLASSES.hitarea).click(toggler);},treeview:function(settings){settings=$.extend({cookieId:"treeview"},settings);if(settings.add){return this.trigger("add",[settings.add]);}if(settings.toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments);};}function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;};}$("a:eq(0)",control).click(handler(CLASSES.collapsable));$("a:eq(1)",control).click(handler(CLASSES.expandable));$("a:eq(2)",control).click(handler());}function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle);if(settings.unique){$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle);}}function serialize(){function binary(arg){return arg?1:0;}var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie(settings.cookieId,data.join(""));}function deserialize(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}};deserialize();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase();});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}break;}branches.applyClasses(settings,toggler);if(settings.control){treeController(this,settings.control);$(settings.control).show();}return this.bind("add",function(event,branches){$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea);$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings,toggler);});}});var CLASSES=$.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};$.fn.Treeview=$.fn.treeview;})(jQuery);
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/jquery.treeview.pack.js b/src/public/javascripts/jquery-treeview/jquery.treeview.pack.js
deleted file mode 100644
index eddac49..0000000
--- a/src/public/javascripts/jquery-treeview/jquery.treeview.pack.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
- * 
- * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
- * http://docs.jquery.com/Plugins/Treeview
- *
- * Copyright (c) 2007 Jörn Zaefferer
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $
- *
- */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(4($){$.1l($.F,{E:4(b,c){l a=3.n(\'.\'+b);3.n(\'.\'+c).o(c).m(b);a.o(b).m(c);8 3},s:4(a,b){8 3.n(\'.\'+a).o(a).m(b).P()},1n:4(a){a=a||"1j";8 3.1j(4(){$(3).m(a)},4(){$(3).o(a)})},1h:4(b,a){b?3.1g({1e:"p"},b,a):3.x(4(){T(3)[T(3).1a(":U")?"H":"D"]();7(a)a.A(3,O)})},12:4(b,a){7(b){3.1g({1e:"D"},b,a)}1L{3.D();7(a)3.x(a)}},11:4(a){7(!a.1k){3.n(":r-1H:G(9)").m(k.r);3.n((a.1F?"":"."+k.X)+":G(."+k.W+")").6(">9").D()}8 3.n(":y(>9)")},S:4(b,c){3.n(":y(>9):G(:y(>a))").6(">1z").C(4(a){c.A($(3).19())}).w($("a",3)).1n();7(!b.1k){3.n(":y(>9:U)").m(k.q).s(k.r,k.t);3.G(":y(>9:U)").m(k.u).s(k.r,k.v);3.1r("<J 14=\\""+k.5+"\\"/>").6("J."+k.5).x(4(){l a="";$.x($(3).B().1o("14").13(" "),4(){a+=3+"-5 "});$(3).m(a)})}3.6("J."+k.5).C(c)},z:4(g){g=$.1l({N:"z"},g);7(g.w){8 3.1K("w",[g.w])}7(g.p){l d=g.p;g.p=4(){8 d.A($(3).B()[0],O)}}4 1m(b,c){4 L(a){8 4(){K.A($("J."+k.5,b).n(4(){8 a?$(3).B("."+a).1i:1I}));8 1G}}$("a:10(0)",c).C(L(k.u));$("a:10(1)",c).C(L(k.q));$("a:10(2)",c).C(L())}4 K(){$(3).B().6(">.5").E(k.Z,k.Y).E(k.I,k.M).P().E(k.u,k.q).E(k.v,k.t).6(">9").1h(g.1f,g.p);7(g.1E){$(3).B().1D().6(">.5").s(k.Z,k.Y).s(k.I,k.M).P().s(k.u,k.q).s(k.v,k.t).6(">9").12(g.1f,g.p)}}4 1d(){4 1C(a){8 a?1:0}l b=[];j.x(4(i,e){b[i]=$(e).1a(":y(>9:1B)")?1:0});$.V(g.N,b.1A(""))}4 1c(){l b=$.V(g.N);7(b){l a=b.13("");j.x(4(i,e){$(e).6(">9")[1y(a[i])?"H":"D"]()})}}3.m("z");l j=3.6("Q").11(g);1x(g.1w){18"V":l h=g.p;g.p=4(){1d();7(h){h.A(3,O)}};1c();17;18"1b":l f=3.6("a").n(4(){8 3.16.15()==1b.16.15()});7(f.1i){f.m("1v").1u("9, Q").w(f.19()).H()}17}j.S(g,K);7(g.R){1m(3,g.R);$(g.R).H()}8 3.1t("w",4(a,b){$(b).1s().o(k.r).o(k.v).o(k.t).6(">.5").o(k.I).o(k.M);$(b).6("Q").1q().11(g).S(g,K)})}});l k=$.F.z.1J={W:"W",X:"X",q:"q",Y:"q-5",M:"t-5",u:"u",Z:"u-5",I:"v-5",v:"v",t:"t",r:"r",5:"5"};$.F.1p=$.F.z})(T);',62,110,'|||this|function|hitarea|find|if|return|ul||||||||||||var|addClass|filter|removeClass|toggle|expandable|last|replaceClass|lastExpandable|collapsable|lastCollapsable|add|each|has|treeview|apply|parent|click|hide|swapClass|fn|not|show|lastCollapsableHitarea|div|toggler|handler|lastExpandableHitarea|cookieId|arguments|end|li|control|applyClasses|jQuery|hidden|cookie|open|closed|expandableHitarea|collapsableHitarea|eq|prepareBranches|heightHide|split|class|toLowerCase|href|break|case|next|is|location|deserialize|serialize|height|animated|animate|heightToggle|length|hover|prerendered|extend|treeController|hoverClass|attr|Treeview|andSelf|prepend|prev|bind|parents|selected|persist|switch|parseInt|span|join|visible|binary|siblings|unique|collapsed|false|child|true|classes|trigger|else'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/lib/jquery.cookie.js b/src/public/javascripts/jquery-treeview/lib/jquery.cookie.js
deleted file mode 100644
index 8e8e1d9..0000000
--- a/src/public/javascripts/jquery-treeview/lib/jquery.cookie.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Cookie plugin
- *
- * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-
-/**
- * Create a cookie with the given name and value and other optional parameters.
- *
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Set the value of a cookie.
- * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
- * @desc Create a cookie with all available options.
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Create a session cookie.
- * @example $.cookie('the_cookie', null);
- * @desc Delete a cookie by passing null as value.
- *
- * @param String name The name of the cookie.
- * @param String value The value of the cookie.
- * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
- * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
- *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
- *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
- *                             when the the browser exits.
- * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
- * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
- * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
- *                        require a secure protocol (like HTTPS).
- * @type undefined
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-
-/**
- * Get the value of a cookie with the given name.
- *
- * @example $.cookie('the_cookie');
- * @desc Get the value of a cookie.
- *
- * @param String name The name of the cookie.
- * @return The value of the cookie.
- * @type String
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-jQuery.cookie = function(name, value, options) {
-    if (typeof value != 'undefined') { // name and value given, set cookie
-        options = options || {};
-        if (value === null) {
-            value = '';
-            options.expires = -1;
-        }
-        var expires = '';
-        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
-            var date;
-            if (typeof options.expires == 'number') {
-                date = new Date();
-                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
-            } else {
-                date = options.expires;
-            }
-            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
-        }
-        var path = options.path ? '; path=' + options.path : '';
-        var domain = options.domain ? '; domain=' + options.domain : '';
-        var secure = options.secure ? '; secure' : '';
-        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
-    } else { // only name given, get cookie
-        var cookieValue = null;
-        if (document.cookie && document.cookie != '') {
-            var cookies = document.cookie.split(';');
-            for (var i = 0; i < cookies.length; i++) {
-                var cookie = jQuery.trim(cookies[i]);
-                // Does this cookie string begin with the name we want?
-                if (cookie.substring(0, name.length + 1) == (name + '=')) {
-                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
-                    break;
-                }
-            }
-        }
-        return cookieValue;
-    }
-};
\ No newline at end of file
diff --git a/src/public/javascripts/jquery-treeview/lib/jquery.js b/src/public/javascripts/jquery-treeview/lib/jquery.js
deleted file mode 100644
index b660baa..0000000
--- a/src/public/javascripts/jquery-treeview/lib/jquery.js
+++ /dev/null
@@ -1,3363 +0,0 @@
-(function(){
-/*
- * jQuery 1.2.2b2 - New Wave Javascript
- *
- * Copyright (c) 2007 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2007-12-20 14:36:56 +0100 (Don, 20 Dez 2007) $
- * $Rev: 4251 $
- */
-
-// Map over jQuery in case of overwrite
-if ( window.jQuery )
-	var _jQuery = window.jQuery;
-
-var jQuery = window.jQuery = function( selector, context ) {
-	// The jQuery object is actually just the init constructor 'enhanced'
-	return new jQuery.prototype.init( selector, context );
-};
-
-// Map over the $ in case of overwrite
-if ( window.$ )
-	var _$ = window.$;
-	
-// Map the jQuery namespace to the '$' one
-window.$ = jQuery;
-
-// A simple way to check for HTML strings or ID strings
-// (both of which we optimize for)
-var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
-
-// Is it a simple selector
-var isSimple = /^.[^:#\[\.]*$/;
-
-jQuery.fn = jQuery.prototype = {
-	init: function( selector, context ) {
-		// Make sure that a selection was provided
-		selector = selector || document;
-
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this[0] = selector;
-			this.length = 1;
-			return this;
-
-		// Handle HTML strings
-		} else if ( typeof selector == "string" ) {
-			// Are we dealing with HTML string or an ID?
-			var match = quickExpr.exec( selector );
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] )
-					selector = jQuery.clean( [ match[1] ], context );
-
-				// HANDLE: $("#id")
-				else {
-					var elem = document.getElementById( match[3] );
-
-					// Make sure an element was located
-					if ( elem )
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id != match[3] )
-							return jQuery().find( selector );
-
-						// Otherwise, we inject the element directly into the jQuery object
-						else {
-							this[0] = elem;
-							this.length = 1;
-							return this;
-						}
-
-					else
-						selector = [];
-				}
-
-			// HANDLE: $(expr, [context])
-			// (which is just equivalent to: $(content).find(expr)
-			} else
-				return new jQuery( context ).find( selector );
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) )
-			return new jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
-
-		return this.setArray(
-			// HANDLE: $(array)
-			selector.constructor == Array && selector ||
-
-			// HANDLE: $(arraylike)
-			// Watch for when an array-like object, contains DOM nodes, is passed in as the selector
-			(selector.jquery || selector.length && selector != window && !selector.nodeType && selector[0] != undefined && selector[0].nodeType) && jQuery.makeArray( selector ) ||
-
-			// HANDLE: $(*)
-			[ selector ] );
-	},
-	
-	// The current version of jQuery being used
-	jquery: "@VERSION",
-
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-	
-	// The number of elements contained in the matched element set
-	length: 0,
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == undefined ?
-
-			// Return a 'clean' array
-			jQuery.makeArray( this ) :
-
-			// Return just the object
-			this[ num ];
-	},
-	
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems ) {
-		// Build a new jQuery matched element set
-		var ret = jQuery( elems );
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		// Return the newly-formed element set
-		return ret;
-	},
-	
-	// Force the current matched set of elements to become
-	// the specified array of elements (destroying the stack in the process)
-	// You should use pushStack() in order to do this, but maintain the stack
-	setArray: function( elems ) {
-		// Resetting the length to 0, then using the native Array push
-		// is a super-fast way to populate an object with array-like properties
-		this.length = 0;
-		Array.prototype.push.apply( this, elems );
-		
-		return this;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	// Determine the position of an element within 
-	// the matched set of elements
-	index: function( elem ) {
-		var ret = -1;
-
-		// Locate the position of the desired element
-		this.each(function(i){
-			if ( this == elem )
-				ret = i;
-		});
-
-		return ret;
-	},
-
-	attr: function( name, value, type ) {
-		var options = name;
-		
-		// Look for the case where we're accessing a style value
-		if ( name.constructor == String )
-			if ( value == undefined )
-				return this.length && jQuery[ type || "attr" ]( this[0], name ) || undefined;
-
-			else {
-				options = {};
-				options[ name ] = value;
-			}
-		
-		// Check to see if we're setting style values
-		return this.each(function(i){
-			// Set all the styles
-			for ( name in options )
-				jQuery.attr(
-					type ?
-						this.style :
-						this,
-					name, jQuery.prop( this, options[ name ], type, i, name )
-				);
-		});
-	},
-
-	css: function( key, value ) {
-		// ignore negative width and height values
-		if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
-			value = undefined;
-		return this.attr( key, value, "curCSS" );
-	},
-
-	text: function( text ) {
-		if ( typeof text != "object" && text != null )
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-
-		var ret = "";
-
-		jQuery.each( text || this, function(){
-			jQuery.each( this.childNodes, function(){
-				if ( this.nodeType != 8 )
-					ret += this.nodeType != 1 ?
-						this.nodeValue :
-						jQuery.fn.text( [ this ] );
-			});
-		});
-
-		return ret;
-	},
-
-	wrapAll: function( html ) {
-		if ( this[0] )
-			// The elements to wrap the target around
-			jQuery( html, this[0].ownerDocument )
-				.clone()
-				.insertBefore( this[0] )
-				.map(function(){
-					var elem = this;
-
-					while ( elem.firstChild )
-						elem = elem.firstChild;
-
-					return elem;
-				})
-				.append(this);
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		return this.each(function(){
-			jQuery( this ).contents().wrapAll( html );
-		});
-	},
-
-	wrap: function( html ) {
-		return this.each(function(){
-			jQuery( this ).wrapAll( html );
-		});
-	},
-
-	append: function() {
-		return this.domManip(arguments, true, false, function(elem){
-			if (this.nodeType == 1)
-				this.appendChild( elem );
-		});
-	},
-
-	prepend: function() {
-		return this.domManip(arguments, true, true, function(elem){
-			if (this.nodeType == 1)
-				this.insertBefore( elem, this.firstChild );
-		});
-	},
-	
-	before: function() {
-		return this.domManip(arguments, false, false, function(elem){
-			this.parentNode.insertBefore( elem, this );
-		});
-	},
-
-	after: function() {
-		return this.domManip(arguments, false, true, function(elem){
-			this.parentNode.insertBefore( elem, this.nextSibling );
-		});
-	},
-
-	end: function() {
-		return this.prevObject || jQuery( [] );
-	},
-
-	find: function( selector ) {
-		var elems = jQuery.map(this, function(elem){
-			return jQuery.find( selector, elem );
-		});
-
-		return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
-			jQuery.unique( elems ) :
-			elems );
-	},
-
-	clone: function( events ) {
-		// Do the clone
-		var ret = this.map(function(){
-			if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) {
-				// IE copies events bound via attachEvent when
-				// using cloneNode. Calling detachEvent on the
-				// clone will also remove the events from the orignal
-				// In order to get around this, we use innerHTML.
-				// Unfortunately, this means some modifications to 
-				// attributes in IE that are actually only stored 
-				// as properties will not be copied (such as the
-				// the name attribute on an input).
-				var clone = this.cloneNode(true),
-					container = document.createElement("div"),
-					container2 = document.createElement("div");
-				container.appendChild(clone);
-				container2.innerHTML = container.innerHTML;
-				return container2.firstChild;
-			} else
-				return this.cloneNode(true);
-		});
-
-		// Need to set the expando to null on the cloned set if it exists
-		// removeData doesn't work here, IE removes it from the original as well
-		// this is primarily for IE but the data expando shouldn't be copied over in any browser
-		var clone = ret.find("*").andSelf().each(function(){
-			if ( this[ expando ] != undefined )
-				this[ expando ] = null;
-		});
-		
-		// Copy the events from the original to the clone
-		if ( events === true )
-			this.find("*").andSelf().each(function(i){
-				var events = jQuery.data( this, "events" );
-
-				for ( var type in events )
-					for ( var handler in events[ type ] )
-						jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
-			});
-
-		// Return the cloned set
-		return ret;
-	},
-
-	filter: function( selector ) {
-		return this.pushStack(
-			jQuery.isFunction( selector ) &&
-			jQuery.grep(this, function(elem, i){
-				return selector.call( elem, i );
-			}) ||
-
-			jQuery.multiFilter( selector, this ) );
-	},
-
-	not: function( selector ) {
-		if ( selector.constructor == String )
-			// test special case where just one selector is passed in
-			if ( isSimple.test( selector ) )
-				return this.pushStack( jQuery.multiFilter( selector, this, true ) );
-			else
-				selector = jQuery.multiFilter( selector, this );
-
-		var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
-		return this.filter(function() {
-			return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
-		});
-	},
-
-	add: function( selector ) {
-		return !selector ? this : this.pushStack( jQuery.merge( 
-			this.get(),
-			selector.constructor == String ? 
-				jQuery( selector ).get() :
-				selector.length != undefined && (!selector.nodeName || jQuery.nodeName(selector, "form")) ?
-					selector : [selector] ) );
-	},
-
-	is: function( selector ) {
-		return selector ?
-			jQuery.multiFilter( selector, this ).length > 0 :
-			false;
-	},
-
-	hasClass: function( selector ) {
-		return this.is( "." + selector );
-	},
-	
-	val: function( value ) {
-		if ( value == undefined ) {
-
-			if ( this.length ) {
-				var elem = this[0];
-
-				// We need to handle select boxes special
-				if ( jQuery.nodeName( elem, "select" ) ) {
-					var index = elem.selectedIndex,
-						values = [],
-						options = elem.options,
-						one = elem.type == "select-one";
-					
-					// Nothing was selected
-					if ( index < 0 )
-						return null;
-
-					// Loop through all the selected options
-					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-						var option = options[ i ];
-
-						if ( option.selected ) {
-							// Get the specifc value for the option
-							value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;
-							
-							// We don't need an array for one selects
-							if ( one )
-								return value;
-							
-							// Multi-Selects return an array
-							values.push( value );
-						}
-					}
-					
-					return values;
-					
-				// Everything else, we just grab the value
-				} else
-					return (this[0].value || "").replace(/\r/g, "");
-
-			}
-
-			return undefined;
-		}
-
-		return this.each(function(){
-			if ( this.nodeType != 1 )
-				return;
-
-			if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
-				this.checked = (jQuery.inArray(this.value, value) >= 0 ||
-					jQuery.inArray(this.name, value) >= 0);
-
-			else if ( jQuery.nodeName( this, "select" ) ) {
-				var values = value.constructor == Array ?
-					value :
-					[ value ];
-
-				jQuery( "option", this ).each(function(){
-					this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
-						jQuery.inArray( this.text, values ) >= 0);
-				});
-
-				if ( !values.length )
-					this.selectedIndex = -1;
-
-			} else
-				this.value = value;
-		});
-	},
-	
-	html: function( value ) {
-		return value == undefined ?
-			(this.length ?
-				this[0].innerHTML :
-				null) :
-			this.empty().append( value );
-	},
-
-	replaceWith: function( value ) {
-		return this.after( value ).remove();
-	},
-
-	eq: function( i ) {
-		return this.slice( i, i + 1 );
-	},
-
-	slice: function() {
-		return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function(elem, i){
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	andSelf: function() {
-		return this.add( this.prevObject );
-	},
-	
-	domManip: function( args, table, reverse, callback ) {
-		var clone = this.length > 1, elems; 
-
-		return this.each(function(){
-			if ( !elems ) {
-				elems = jQuery.clean( args, this.ownerDocument );
-
-				if ( reverse )
-					elems.reverse();
-			}
-
-			var obj = this;
-
-			if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
-				obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
-
-			var scripts = jQuery( [] );
-
-			jQuery.each(elems, function(){
-				var elem = clone ?
-					jQuery( this ).clone( true )[0] :
-					this;
-
-				// execute all scripts after the elements have been injected
-				if ( jQuery.nodeName( elem, "script" ) ) {
-					scripts = scripts.add( elem );
-				} else {
-					// Remove any inner scripts for later evaluation
-					if ( elem.nodeType == 1 )
-						scripts = scripts.add( jQuery( "script", elem ).remove() );
-
-					// Inject the elements into the document
-					callback.call( obj, elem );
-				}
-			});
-
-			scripts.each( evalScript );
-		});
-	}
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.prototype.init.prototype = jQuery.prototype;
-
-function evalScript( i, elem ) {
-	if ( elem.src )
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-
-	else
-		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-
-	if ( elem.parentNode )
-		elem.parentNode.removeChild( elem );
-}
-
-jQuery.extend = jQuery.fn.extend = function() {
-	// copy reference to target object
-	var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
-
-	// Handle a deep copy situation
-	if ( target.constructor == Boolean ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target != "object" && typeof target != "function" )
-		target = {};
-
-	// extend jQuery itself if only one argument is passed
-	if ( length == 1 ) {
-		target = this;
-		i = 0;
-	}
-
-	for ( ; i < length; i++ )
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null )
-			// Extend the base object
-			for ( var name in options ) {
-				// Prevent never-ending loop
-				if ( target === options[ name ] )
-					continue;
-
-				// Recurse if we're merging object values
-				if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
-					target[ name ] = jQuery.extend( target[ name ], options[ name ] );
-
-				// Don't bring in undefined values
-				else if ( options[ name ] != undefined )
-					target[ name ] = options[ name ];
-
-			}
-
-	// Return the modified object
-	return target;
-};
-
-var expando = "jQuery" + (new Date()).getTime(), uuid = 0, windowData = {};
-
-// exclude the following css properties to add px
-var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;
-
-jQuery.extend({
-	noConflict: function( deep ) {
-		window.$ = _$;
-
-		if ( deep )
-			window.jQuery = _jQuery;
-
-		return jQuery;
-	},
-
-	// This may seem like some crazy code, but trust me when I say that this
-	// is the only cross-browser way to do this. --John
-	isFunction: function( fn ) {
-		return !!fn && typeof fn != "string" && !fn.nodeName && 
-			fn.constructor != Array && /function/i.test( fn + "" );
-	},
-	
-	// check if an element is in a (or is an) XML document
-	isXMLDoc: function( elem ) {
-		return elem.documentElement && !elem.body ||
-			elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
-	},
-
-	// Evalulates a script in a global context
-	globalEval: function( data ) {
-		data = jQuery.trim( data );
-
-		if ( data ) {
-			// Inspired by code by Andrea Giammarchi
-			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
-			var head = document.getElementsByTagName("head")[0] || document.documentElement,
-				script = document.createElement("script");
-
-			script.type = "text/javascript";
-			if ( jQuery.browser.msie )
-				script.text = data;
-			else
-				script.appendChild( document.createTextNode( data ) );
-
-			head.appendChild( script );
-			head.removeChild( script );
-		}
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
-	},
-	
-	cache: {},
-	
-	data: function( elem, name, data ) {
-		elem = elem == window ?
-			windowData :
-			elem;
-
-		var id = elem[ expando ];
-
-		// Compute a unique ID for the element
-		if ( !id ) 
-			id = elem[ expando ] = ++uuid;
-
-		// Only generate the data cache if we're
-		// trying to access or manipulate it
-		if ( name && !jQuery.cache[ id ] )
-			jQuery.cache[ id ] = {};
-		
-		// Prevent overriding the named cache with undefined values
-		if ( data != undefined )
-			jQuery.cache[ id ][ name ] = data;
-		
-		// Return the named cache data, or the ID for the element	
-		return name ?
-			jQuery.cache[ id ][ name ] :
-			id;
-	},
-	
-	removeData: function( elem, name ) {
-		elem = elem == window ?
-			windowData :
-			elem;
-
-		var id = elem[ expando ];
-
-		// If we want to remove a specific section of the element's data
-		if ( name ) {
-			if ( jQuery.cache[ id ] ) {
-				// Remove the section of cache data
-				delete jQuery.cache[ id ][ name ];
-
-				// If we've removed all the data, remove the element's cache
-				name = "";
-
-				for ( name in jQuery.cache[ id ] )
-					break;
-
-				if ( !name )
-					jQuery.removeData( elem );
-			}
-
-		// Otherwise, we want to remove all of the element's data
-		} else {
-			// Clean up the element expando
-			try {
-				delete elem[ expando ];
-			} catch(e){
-				// IE has trouble directly removing the expando
-				// but it's ok with using removeAttribute
-				if ( elem.removeAttribute )
-					elem.removeAttribute( expando );
-			}
-
-			// Completely remove the data cache
-			delete jQuery.cache[ id ];
-		}
-	},
-
-	// args is for internal usage only
-	each: function( object, callback, args ) {
-		if ( args ) {
-			if ( object.length == undefined )
-				for ( var name in object )
-					callback.apply( object[ name ], args );
-			else
-				for ( var i = 0, length = object.length; i < length; i++ )
-					if ( callback.apply( object[ i ], args ) === false )
-						break;
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( object.length == undefined )
-				for ( var name in object )
-					callback.call( object[ name ], name, object[ name ] );
-			else
-				for ( var i = 0, length = object.length, value = object[0]; 
-					i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
-		}
-
-		return object;
-	},
-	
-	prop: function( elem, value, type, i, name ) {
-			// Handle executable functions
-			if ( jQuery.isFunction( value ) )
-				value = value.call( elem, i );
-				
-			// Handle passing in a number to a CSS property
-			return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
-				value + "px" :
-				value;
-	},
-
-	className: {
-		// internal only, use addClass("class")
-		add: function( elem, classNames ) {
-			jQuery.each((classNames || "").split(/\s+/), function(i, className){
-				if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
-					elem.className += (elem.className ? " " : "") + className;
-			});
-		},
-
-		// internal only, use removeClass("class")
-		remove: function( elem, classNames ) {
-			if (elem.nodeType == 1)
-				elem.className = classNames != undefined ?
-					jQuery.grep(elem.className.split(/\s+/), function(className){
-						return !jQuery.className.has( classNames, className );	
-					}).join(" ") :
-					"";
-		},
-
-		// internal only, use is(".class")
-		has: function( elem, className ) {
-			return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
-		}
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		callback.call( elem );
-
-		// Revert the old values
-		for ( var name in options )
-			elem.style[ name ] = old[ name ];
-	},
-
-	css: function( elem, name, force ) {
-		if ( name == "width" || name == "height" ) {
-			var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
-		
-			function getWH() {
-				val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
-				var padding = 0, border = 0;
-				jQuery.each( which, function() {
-					padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
-					border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
-				});
-				val -= Math.round(padding + border);
-			}
-		
-			if ( jQuery(elem).is(":visible") )
-				getWH();
-			else
-				jQuery.swap( elem, props, getWH );
-			
-			return Math.max(0, val);
-		}
-		
-		return jQuery.curCSS( elem, name, force );
-	},
-
-	curCSS: function( elem, name, force ) {
-		var ret;
-
-		// A helper method for determining if an element's values are broken
-		function color( elem ) {
-			if ( !jQuery.browser.safari )
-				return false;
-
-			var ret = document.defaultView.getComputedStyle( elem, null );
-			return !ret || ret.getPropertyValue("color") == "";
-		}
-
-		// We need to handle opacity special in IE
-		if ( name == "opacity" && jQuery.browser.msie ) {
-			ret = jQuery.attr( elem.style, "opacity" );
-
-			return ret == "" ?
-				"1" :
-				ret;
-		}
-		// Opera sometimes will give the wrong display answer, this fixes it, see #2037
-		if ( jQuery.browser.opera && name == "display" ) {
-			var save = elem.style.display;
-			elem.style.display = "block";
-			elem.style.display = save;
-		}
-		
-		// Make sure we're using the right name for getting the float value
-		if ( name.match( /float/i ) )
-			name = styleFloat;
-
-		if ( !force && elem.style[ name ] )
-			ret = elem.style[ name ];
-
-		else if ( document.defaultView && document.defaultView.getComputedStyle ) {
-
-			// Only "float" is needed here
-			if ( name.match( /float/i ) )
-				name = "float";
-
-			name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
-
-			var getComputedStyle = document.defaultView.getComputedStyle( elem, null );
-
-			if ( getComputedStyle && !color( elem ) )
-				ret = getComputedStyle.getPropertyValue( name );
-
-			// If the element isn't reporting its values properly in Safari
-			// then some display: none elements are involved
-			else {
-				var swap = [], stack = [];
-
-				// Locate all of the parent display: none elements
-				for ( var a = elem; a && color(a); a = a.parentNode )
-					stack.unshift(a);
-
-				// Go through and make them visible, but in reverse
-				// (It would be better if we knew the exact display type that they had)
-				for ( var i = 0; i < stack.length; i++ )
-					if ( color( stack[ i ] ) ) {
-						swap[ i ] = stack[ i ].style.display;
-						stack[ i ].style.display = "block";
-					}
-
-				// Since we flip the display style, we have to handle that
-				// one special, otherwise get the value
-				ret = name == "display" && swap[ stack.length - 1 ] != null ?
-					"none" :
-					( getComputedStyle && getComputedStyle.getPropertyValue( name ) ) || "";
-
-				// Finally, revert the display styles back
-				for ( var i = 0; i < swap.length; i++ )
-					if ( swap[ i ] != null )
-						stack[ i ].style.display = swap[ i ];
-			}
-
-			// We should always get a number back from opacity
-			if ( name == "opacity" && ret == "" )
-				ret = "1";
-
-		} else if ( elem.currentStyle ) {
-			var camelCase = name.replace(/\-(\w)/g, function(all, letter){
-				return letter.toUpperCase();
-			});
-
-			ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
-
-			// From the awesome hack by Dean Edwards
-			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-			// If we're not dealing with a regular pixel number
-			// but a number that has a weird ending, we need to convert it to pixels
-			if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
-				// Remember the original values
-				var style = elem.style.left, runtimeStyle = elem.runtimeStyle.left;
-
-				// Put in the new values to get a computed value out
-				elem.runtimeStyle.left = elem.currentStyle.left;
-				elem.style.left = ret || 0;
-				ret = elem.style.pixelLeft + "px";
-
-				// Revert the changed values
-				elem.style.left = style;
-				elem.runtimeStyle.left = runtimeStyle;
-			}
-		}
-
-		return ret;
-	},
-	
-	clean: function( elems, context ) {
-		var ret = [];
-		context = context || document;
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if (typeof context.createElement == 'undefined') 
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-
-		jQuery.each(elems, function(i, elem){
-			if ( !elem )
-				return;
-
-			if ( elem.constructor == Number )
-				elem = elem.toString();
-			
-			// Convert html string into DOM nodes
-			if ( typeof elem == "string" ) {
-				// Fix "XHTML"-style tags in all browsers
-				elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
-					return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i) ?
-						all :
-						front + "></" + tag + ">";
-				});
-
-				// Trim whitespace, otherwise indexOf won't work as expected
-				var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
-
-				var wrap =
-					// option or optgroup
-					!tags.indexOf("<opt") &&
-					[ 1, "<select multiple='multiple'>", "</select>" ] ||
-					
-					!tags.indexOf("<leg") &&
-					[ 1, "<fieldset>", "</fieldset>" ] ||
-					
-					tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
-					[ 1, "<table>", "</table>" ] ||
-					
-					!tags.indexOf("<tr") &&
-					[ 2, "<table><tbody>", "</tbody></table>" ] ||
-					
-				 	// <thead> matched above
-					(!tags.indexOf("<td") || !tags.indexOf("<th")) &&
-					[ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
-					
-					!tags.indexOf("<col") &&
-					[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
-
-					// IE can't serialize <link> and <script> tags normally
-					jQuery.browser.msie &&
-					[ 1, "div<div>", "</div>" ] ||
-					
-					[ 0, "", "" ];
-
-				// Go to html and back, then peel off extra wrappers
-				div.innerHTML = wrap[1] + elem + wrap[2];
-				
-				// Move to the right depth
-				while ( wrap[0]-- )
-					div = div.lastChild;
-				
-				// Remove IE's autoinserted <tbody> from table fragments
-				if ( jQuery.browser.msie ) {
-					
-					// String was a <table>, *may* have spurious <tbody>
-					var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
-						div.firstChild && div.firstChild.childNodes :
-						
-						// String was a bare <thead> or <tfoot>
-						wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
-							div.childNodes :
-							[];
-				
-					for ( var j = tbody.length - 1; j >= 0 ; --j )
-						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
-							tbody[ j ].parentNode.removeChild( tbody[ j ] );
-					
-					// IE completely kills leading whitespace when innerHTML is used	
-					if ( /^\s/.test( elem ) )	
-						div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
-				
-				}
-				
-				elem = jQuery.makeArray( div.childNodes );
-			}
-
-			if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) )
-				return;
-
-			if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options )
-				ret.push( elem );
-
-			else
-				ret = jQuery.merge( ret, elem );
-
-		});
-
-		return ret;
-	},
-	
-	attr: function( elem, name, value ) {
-		// don't set attributes on text and comment nodes
-		if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
-			return undefined;
-
-		var fix = jQuery.isXMLDoc( elem ) ?
-			{} :
-			jQuery.props;
-
-		// Safari mis-reports the default selected property of a hidden option
-		// Accessing the parent's selectedIndex property fixes it
-		if ( name == "selected" && jQuery.browser.safari )
-			elem.parentNode.selectedIndex;
-		
-		// Certain attributes only work when accessed via the old DOM 0 way
-		if ( fix[ name ] ) {
-			if ( value != undefined )
-				elem[ fix[ name ] ] = value;
-
-			return elem[ fix[ name ] ];
-
-		} else if ( jQuery.browser.msie && name == "style" )
-			return jQuery.attr( elem.style, "cssText", value );
-
-		else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName( elem, "form" ) && (name == "action" || name == "method") )
-			return elem.getAttributeNode( name ).nodeValue;
-
-		// IE elem.getAttribute passes even for style
-		else if ( elem.tagName ) {
-
-			if ( value != undefined ) {
-				// We can't allow the type property to be changed (since it causes problems in IE)
-				if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
-					throw "type property can't be changed";
-
-				// convert the value to a string (all browsers do this but IE) see #1070
-				elem.setAttribute( name, "" + value );
-			}
-
-			if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) ) 
-				return elem.getAttribute( name, 2 );
-
-			return elem.getAttribute( name );
-
-		// elem is actually elem.style ... set the style
-		} else {
-			// IE actually uses filters for opacity
-			if ( name == "opacity" && jQuery.browser.msie ) {
-				if ( value != undefined ) {
-					// IE has trouble with opacity if it does not have layout
-					// Force it by setting the zoom level
-					elem.zoom = 1; 
-	
-					// Set the alpha filter to set the opacity
-					elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
-						(parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
-				}
-	
-				return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
-					(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() :
-					"";
-			}
-
-			name = name.replace(/-([a-z])/ig, function(all, letter){
-				return letter.toUpperCase();
-			});
-
-			if ( value != undefined )
-				elem[ name ] = value;
-
-			return elem[ name ];
-		}
-	},
-	
-	trim: function( text ) {
-		return (text || "").replace( /^\s+|\s+$/g, "" );
-	},
-
-	makeArray: function( array ) {
-		var ret = [];
-
-		// Need to use typeof to fight Safari childNodes crashes
-		if ( typeof array != "array" )
-			for ( var i = 0, length = array.length; i < length; i++ )
-				ret.push( array[ i ] );
-		else
-			ret = array.slice( 0 );
-
-		return ret;
-	},
-
-	inArray: function( elem, array ) {
-		for ( var i = 0, length = array.length; i < length; i++ )
-			if ( array[ i ] == elem )
-				return i;
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		// We have to loop this way because IE & Opera overwrite the length
-		// expando of getElementsByTagName
-
-		// Also, we need to make sure that the correct elements are being returned
-		// (IE returns comment nodes in a '*' query)
-		if ( jQuery.browser.msie ) {
-			for ( var i = 0; second[ i ]; i++ )
-				if ( second[ i ].nodeType != 8 )
-					first.push( second[ i ] );
-
-		} else
-			for ( var i = 0; second[ i ]; i++ )
-				first.push( second[ i ] );
-
-		return first;
-	},
-
-	unique: function( array ) {
-		var ret = [], done = {};
-
-		try {
-
-			for ( var i = 0, length = array.length; i < length; i++ ) {
-				var id = jQuery.data( array[ i ] );
-
-				if ( !done[ id ] ) {
-					done[ id ] = true;
-					ret.push( array[ i ] );
-				}
-			}
-
-		} catch( e ) {
-			ret = array;
-		}
-
-		return ret;
-	},
-
-	grep: function( elems, callback, inv ) {
-		// If a string is passed in for the function, make a function
-		// for it (a handy shortcut)
-		if ( typeof callback == "string" )
-			callback = eval("false||function(a,i){return " + callback + "}");
-
-		var ret = [];
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ )
-			if ( !inv && callback( elems[ i ], i ) || inv && !callback( elems[ i ], i ) )
-				ret.push( elems[ i ] );
-
-		return ret;
-	},
-
-	map: function( elems, callback ) {
-		var ret = [];
-
-		// Go through the array, translating each of the items to their
-		// new value (or values).
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			var value = callback( elems[ i ], i );
-
-			if ( value !== null && value != undefined ) {
-				if ( value.constructor != Array )
-					value = [ value ];
-
-				ret = ret.concat( value );
-			}
-		}
-
-		return ret;
-	}
-});
-
-var userAgent = navigator.userAgent.toLowerCase();
-
-// Figure out what browser is being used
-jQuery.browser = {
-	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
-	safari: /webkit/.test( userAgent ),
-	opera: /opera/.test( userAgent ),
-	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
-	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
-};
-
-var styleFloat = jQuery.browser.msie ?
-	"styleFloat" :
-	"cssFloat";
-	
-jQuery.extend({
-	// Check to see if the W3C box model is being used
-	boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
-	
-	props: {
-		"for": "htmlFor",
-		"class": "className",
-		"float": styleFloat,
-		cssFloat: styleFloat,
-		styleFloat: styleFloat,
-		innerHTML: "innerHTML",
-		className: "className",
-		value: "value",
-		disabled: "disabled",
-		checked: "checked",
-		readonly: "readOnly",
-		selected: "selected",
-		maxlength: "maxLength",
-		selectedIndex: "selectedIndex",
-		defaultValue: "defaultValue",
-		tagName: "tagName",
-		nodeName: "nodeName"
-	}
-});
-
-jQuery.each({
-	parent: "elem.parentNode",
-	parents: "jQuery.dir(elem,'parentNode')",
-	next: "jQuery.nth(elem,2,'nextSibling')",
-	prev: "jQuery.nth(elem,2,'previousSibling')",
-	nextAll: "jQuery.dir(elem,'nextSibling')",
-	prevAll: "jQuery.dir(elem,'previousSibling')",
-	siblings: "jQuery.sibling(elem.parentNode.firstChild,elem)",
-	children: "jQuery.sibling(elem.firstChild)",
-	contents: "jQuery.nodeName(elem,'iframe')?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)"
-}, function(name, fn){
-	fn = eval("false||function(elem){return " + fn + "}");
-
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = jQuery.map( this, fn );
-
-		if ( selector && typeof selector == "string" )
-			ret = jQuery.multiFilter( selector, ret );
-
-		return this.pushStack( jQuery.unique( ret ) );
-	};
-});
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function(name, original){
-	jQuery.fn[ name ] = function() {
-		var args = arguments;
-
-		return this.each(function(){
-			for ( var i = 0, length = args.length; i < length; i++ )
-				jQuery( args[ i ] )[ original ]( this );
-		});
-	};
-});
-
-jQuery.each({
-	removeAttr: function( name ) {
-		jQuery.attr( this, name, "" );
-		if (this.nodeType == 1) 
-			this.removeAttribute( name );
-	},
-
-	addClass: function( classNames ) {
-		jQuery.className.add( this, classNames );
-	},
-
-	removeClass: function( classNames ) {
-		jQuery.className.remove( this, classNames );
-	},
-
-	toggleClass: function( classNames ) {
-		jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
-	},
-
-	remove: function( selector ) {
-		if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
-			// Prevent memory leaks
-			jQuery( "*", this ).add(this).each(function(){
-				jQuery.event.remove(this);
-				jQuery.removeData(this);
-			});
-			if (this.parentNode)
-				this.parentNode.removeChild( this );
-		}
-	},
-
-	empty: function() {
-		// Remove element nodes and prevent memory leaks
-		jQuery( ">*", this ).remove();
-		
-		// Remove any remaining nodes
-		while ( this.firstChild )
-			this.removeChild( this.firstChild );
-	}
-}, function(name, fn){
-	jQuery.fn[ name ] = function(){
-		return this.each( fn, arguments );
-	};
-});
-
-jQuery.each([ "Height", "Width" ], function(i, name){
-	var type = name.toLowerCase();
-	
-	jQuery.fn[ type ] = function( size ) {
-		// Get window width or height
-		return this[0] == window ?
-			// Opera reports document.body.client[Width/Height] properly in both quirks and standards
-			jQuery.browser.opera && document.body[ "client" + name ] || 
-			
-			// Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)
-			jQuery.browser.safari && window[ "inner" + name ] ||
-			
-			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-			document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :
-		
-			// Get document width or height
-			this[0] == document ?
-				// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-				Math.max( 
-					Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]), 
-					Math.max(document.body["offset" + name], document.documentElement["offset" + name]) 
-				) :
-
-				// Get or set width or height on the element
-				size == undefined ?
-					// Get width or height on the element
-					(this.length ? jQuery.css( this[0], type ) : null) :
-
-					// Set the width or height on the element (default to pixels if value is unitless)
-					this.css( type, size.constructor == String ? size : size + "px" );
-	};
-});
-
-var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
-		"(?:[\\w*_-]|\\\\.)" :
-		"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
-	quickChild = new RegExp("^>\\s*(" + chars + "+)"),
-	quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"),
-	quickClass = new RegExp("^([#.]?)(" + chars + "*)");
-
-jQuery.extend({
-	expr: {
-		"": "m[2]=='*'||jQuery.nodeName(a,m[2])",
-		"#": "a.getAttribute('id')==m[2]",
-		":": {
-			// Position Checks
-			lt: "i<m[3]-0",
-			gt: "i>m[3]-0",
-			nth: "m[3]-0==i",
-			eq: "m[3]-0==i",
-			first: "i==0",
-			last: "i==r.length-1",
-			even: "i%2==0",
-			odd: "i%2",
-
-			// Child Checks
-			"first-child": "a.parentNode.getElementsByTagName('*')[0]==a",
-			"last-child": "jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a",
-			"only-child": "!jQuery.nth(a.parentNode.lastChild,2,'previousSibling')",
-
-			// Parent Checks
-			parent: "a.firstChild",
-			empty: "!a.firstChild",
-
-			// Text Check
-			contains: "(a.textContent||a.innerText||jQuery(a).text()||'').indexOf(m[3])>=0",
-
-			// Visibility
-			visible: '"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"',
-			hidden: '"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"',
-
-			// Form attributes
-			enabled: "!a.disabled",
-			disabled: "a.disabled",
-			checked: "a.checked",
-			selected: "a.selected||jQuery.attr(a,'selected')",
-
-			// Form elements
-			text: "'text'==a.type",
-			radio: "'radio'==a.type",
-			checkbox: "'checkbox'==a.type",
-			file: "'file'==a.type",
-			password: "'password'==a.type",
-			submit: "'submit'==a.type",
-			image: "'image'==a.type",
-			reset: "'reset'==a.type",
-			button: '"button"==a.type||jQuery.nodeName(a,"button")',
-			input: "/input|select|textarea|button/i.test(a.nodeName)",
-
-			// :has()
-			has: "jQuery.find(m[3],a).length",
-
-			// :header
-			header: "/h\\d/i.test(a.nodeName)",
-
-			// :animated
-			animated: "jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length"
-		}
-	},
-	
-	// The regular expressions that power the parsing engine
-	parse: [
-		// Match: [@value='test'], [@foo]
-		/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,
-
-		// Match: :contains('foo')
-		/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,
-
-		// Match: :even, :last-chlid, #id, .class
-		new RegExp("^([:.#]*)(" + chars + "+)")
-	],
-
-	multiFilter: function( expr, elems, not ) {
-		var old, cur = [];
-
-		while ( expr && expr != old ) {
-			old = expr;
-			var f = jQuery.filter( expr, elems, not );
-			expr = f.t.replace(/^\s*,\s*/, "" );
-			cur = not ? elems = f.r : jQuery.merge( cur, f.r );
-		}
-
-		return cur;
-	},
-
-	find: function( t, context ) {
-		// Quickly handle non-string expressions
-		if ( typeof t != "string" )
-			return [ t ];
-
-		// check to make sure context is a DOM element or a document
-		if ( context && context.nodeType != 1 && context.nodeType != 9)
-			return [ ];
-
-		// Set the correct context (if none is provided)
-		context = context || document;
-
-		// Initialize the search
-		var ret = [context], done = [], last, nodeName;
-
-		// Continue while a selector expression exists, and while
-		// we're no longer looping upon ourselves
-		while ( t && last != t ) {
-			var r = [];
-			last = t;
-
-			t = jQuery.trim(t);
-
-			var foundToken = false;
-
-			// An attempt at speeding up child selectors that
-			// point to a specific element tag
-			var re = quickChild;
-			var m = re.exec(t);
-
-			if ( m ) {
-				nodeName = m[1].toUpperCase();
-
-				// Perform our own iteration and filter
-				for ( var i = 0; ret[i]; i++ )
-					for ( var c = ret[i].firstChild; c; c = c.nextSibling )
-						if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) )
-							r.push( c );
-
-				ret = r;
-				t = t.replace( re, "" );
-				if ( t.indexOf(" ") == 0 ) continue;
-				foundToken = true;
-			} else {
-				re = /^([>+~])\s*(\w*)/i;
-
-				if ( (m = re.exec(t)) != null ) {
-					r = [];
-
-					var merge = {};
-					nodeName = m[2].toUpperCase();
-					m = m[1];
-
-					for ( var j = 0, rl = ret.length; j < rl; j++ ) {
-						var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild;
-						for ( ; n; n = n.nextSibling )
-							if ( n.nodeType == 1 ) {
-								var id = jQuery.data(n);
-
-								if ( m == "~" && merge[id] ) break;
-								
-								if (!nodeName || n.nodeName.toUpperCase() == nodeName ) {
-									if ( m == "~" ) merge[id] = true;
-									r.push( n );
-								}
-								
-								if ( m == "+" ) break;
-							}
-					}
-
-					ret = r;
-
-					// And remove the token
-					t = jQuery.trim( t.replace( re, "" ) );
-					foundToken = true;
-				}
-			}
-
-			// See if there's still an expression, and that we haven't already
-			// matched a token
-			if ( t && !foundToken ) {
-				// Handle multiple expressions
-				if ( !t.indexOf(",") ) {
-					// Clean the result set
-					if ( context == ret[0] ) ret.shift();
-
-					// Merge the result sets
-					done = jQuery.merge( done, ret );
-
-					// Reset the context
-					r = ret = [context];
-
-					// Touch up the selector string
-					t = " " + t.substr(1,t.length);
-
-				} else {
-					// Optimize for the case nodeName#idName
-					var re2 = quickID;
-					var m = re2.exec(t);
-					
-					// Re-organize the results, so that they're consistent
-					if ( m ) {
-						m = [ 0, m[2], m[3], m[1] ];
-
-					} else {
-						// Otherwise, do a traditional filter check for
-						// ID, class, and element selectors
-						re2 = quickClass;
-						m = re2.exec(t);
-					}
-
-					m[2] = m[2].replace(/\\/g, "");
-
-					var elem = ret[ret.length-1];
-
-					// Try to do a global search by ID, where we can
-					if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
-						// Optimization for HTML document case
-						var oid = elem.getElementById(m[2]);
-						
-						// Do a quick check for the existence of the actual ID attribute
-						// to avoid selecting by the name attribute in IE
-						// also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form
-						if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] )
-							oid = jQuery('[@id="'+m[2]+'"]', elem)[0];
-
-						// Do a quick check for node name (where applicable) so
-						// that div#foo searches will be really fast
-						ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
-					} else {
-						// We need to find all descendant elements
-						for ( var i = 0; ret[i]; i++ ) {
-							// Grab the tag name being searched for
-							var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2];
-
-							// Handle IE7 being really dumb about <object>s
-							if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" )
-								tag = "param";
-
-							r = jQuery.merge( r, ret[i].getElementsByTagName( tag ));
-						}
-
-						// It's faster to filter by class and be done with it
-						if ( m[1] == "." )
-							r = jQuery.classFilter( r, m[2] );
-
-						// Same with ID filtering
-						if ( m[1] == "#" ) {
-							var tmp = [];
-
-							// Try to find the element with the ID
-							for ( var i = 0; r[i]; i++ )
-								if ( r[i].getAttribute("id") == m[2] ) {
-									tmp = [ r[i] ];
-									break;
-								}
-
-							r = tmp;
-						}
-
-						ret = r;
-					}
-
-					t = t.replace( re2, "" );
-				}
-
-			}
-
-			// If a selector string still exists
-			if ( t ) {
-				// Attempt to filter it
-				var val = jQuery.filter(t,r);
-				ret = r = val.r;
-				t = jQuery.trim(val.t);
-			}
-		}
-
-		// An error occurred with the selector;
-		// just return an empty set instead
-		if ( t )
-			ret = [];
-
-		// Remove the root context
-		if ( ret && context == ret[0] )
-			ret.shift();
-
-		// And combine the results
-		done = jQuery.merge( done, ret );
-
-		return done;
-	},
-
-	classFilter: function(r,m,not){
-		m = " " + m + " ";
-		var tmp = [];
-		for ( var i = 0; r[i]; i++ ) {
-			var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
-			if ( !not && pass || not && !pass )
-				tmp.push( r[i] );
-		}
-		return tmp;
-	},
-
-	filter: function(t,r,not) {
-		var last;
-
-		// Look for common filter expressions
-		while ( t && t != last ) {
-			last = t;
-
-			var p = jQuery.parse, m;
-
-			for ( var i = 0; p[i]; i++ ) {
-				m = p[i].exec( t );
-
-				if ( m ) {
-					// Remove what we just matched
-					t = t.substring( m[0].length );
-
-					m[2] = m[2].replace(/\\/g, "");
-					break;
-				}
-			}
-
-			if ( !m )
-				break;
-
-			// :not() is a special case that can be optimized by
-			// keeping it out of the expression list
-			if ( m[1] == ":" && m[2] == "not" )
-				// optimize if only one selector found (most common case)
-				r = isSimple.test( m[3] ) ?
-					jQuery.filter(m[3], r, true).r :
-					jQuery( r ).not( m[3] );
-
-			// We can get a big speed boost by filtering by class here
-			else if ( m[1] == "." )
-				r = jQuery.classFilter(r, m[2], not);
-
-			else if ( m[1] == "[" ) {
-				var tmp = [], type = m[3];
-				
-				for ( var i = 0, rl = r.length; i < rl; i++ ) {
-					var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
-					
-					if ( z == null || /href|src|selected/.test(m[2]) )
-						z = jQuery.attr(a,m[2]) || '';
-
-					if ( (type == "" && !!z ||
-						 type == "=" && z == m[5] ||
-						 type == "!=" && z != m[5] ||
-						 type == "^=" && z && !z.indexOf(m[5]) ||
-						 type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
-						 (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
-							tmp.push( a );
-				}
-				
-				r = tmp;
-
-			// We can get a speed boost by handling nth-child here
-			} else if ( m[1] == ":" && m[2] == "nth-child" ) {
-				var merge = {}, tmp = [],
-					// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-					test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
-						m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" ||
-						!/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
-					// calculate the numbers (first)n+(last) including if they are negative
-					first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0;
- 
-				// loop through all the elements left in the jQuery object
-				for ( var i = 0, rl = r.length; i < rl; i++ ) {
-					var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);
-
-					if ( !merge[id] ) {
-						var c = 1;
-
-						for ( var n = parentNode.firstChild; n; n = n.nextSibling )
-							if ( n.nodeType == 1 )
-								n.nodeIndex = c++;
-
-						merge[id] = true;
-					}
-
-					var add = false;
-
-					if ( first == 0 ) {
-						if ( node.nodeIndex == last )
-							add = true;
-					} else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 )
-						add = true;
-
-					if ( add ^ not )
-						tmp.push( node );
-				}
-
-				r = tmp;
-
-			// Otherwise, find the expression to execute
-			} else {
-				var f = jQuery.expr[m[1]];
-				if ( typeof f != "string" )
-					f = jQuery.expr[m[1]][m[2]];
-
-				// Build a custom macro to enclose it
-				f = eval("false||function(a,i){return " + f + "}");
-
-				// Execute it against the current filter
-				r = jQuery.grep( r, f, not );
-			}
-		}
-
-		// Return an array of filtered elements (r)
-		// and the modified expression string (t)
-		return { r: r, t: t };
-	},
-
-	dir: function( elem, dir ){
-		var matched = [];
-		var cur = elem[dir];
-		while ( cur && cur != document ) {
-			if ( cur.nodeType == 1 )
-				matched.push( cur );
-			cur = cur[dir];
-		}
-		return matched;
-	},
-	
-	nth: function(cur,result,dir,elem){
-		result = result || 1;
-		var num = 0;
-
-		for ( ; cur; cur = cur[dir] )
-			if ( cur.nodeType == 1 && ++num == result )
-				break;
-
-		return cur;
-	},
-	
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType == 1 && (!elem || n != elem) )
-				r.push( n );
-		}
-
-		return r;
-	}
-});
-
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code orignated from 
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
-	// Bind an event to an element
-	// Original by Dean Edwards
-	add: function(elem, types, handler, data) {
-		if ( elem.nodeType == 3 || elem.nodeType == 8 )
-			return;
-
-		// For whatever reason, IE has trouble passing the window object
-		// around, causing it to be cloned in the process
-		if ( jQuery.browser.msie && elem.setInterval != undefined )
-			elem = window;
-
-		// Make sure that the function being executed has a unique ID
-		if ( !handler.guid )
-			handler.guid = this.guid++;
-			
-		// if data is passed, bind to handler 
-		if( data != undefined ) { 
-			// Create temporary function pointer to original handler 
-			var fn = handler; 
-
-			// Create unique handler function, wrapped around original handler 
-			handler = function() { 
-				// Pass arguments and context to original handler 
-				return fn.apply(this, arguments); 
-			};
-
-			// Store data in unique handler 
-			handler.data = data;
-
-			// Set the guid of unique handler to the same of original handler, so it can be removed 
-			handler.guid = fn.guid;
-		}
-
-		// Init the element's event structure
-		var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
-			handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
-				// returned undefined or false
-				var val;
-
-				// Handle the second event of a trigger and when
-				// an event is called after a page has unloaded
-				if ( typeof jQuery == "undefined" || jQuery.event.triggered )
-					return val;
-		
-				val = jQuery.event.handle.apply(elem, arguments);
-		
-				return val;
-			});
-			
-			// Handle multiple events seperated by a space
-			// jQuery(...).bind("mouseover mouseout", fn);
-			jQuery.each(types.split(/\s+/), function(index, type) {
-				// Namespaced event handlers
-				var parts = type.split(".");
-				type = parts[0];
-				handler.type = parts[1];
-
-				// Get the current list of functions bound to this event
-				var handlers = events[type];
-
-				// Init the event handler queue
-				if (!handlers) {
-					handlers = events[type] = {};
-		
-					// Check for a special event handler
-					// Only use addEventListener/attachEvent if the special
-					// events handler returns false
-					if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) {
-						// Bind the global event handler to the element
-						if (elem.addEventListener)
-							elem.addEventListener(type, handle, false);
-						else if (elem.attachEvent)
-							elem.attachEvent("on" + type, handle);
-					}
-				}
-
-				// Add the function to the element's handler list
-				handlers[handler.guid] = handler;
-
-				// Keep track of which events have been used, for global triggering
-				jQuery.event.global[type] = true;
-			});
-	},
-
-	guid: 1,
-	global: {},
-
-	// Detach an event or set of events from an element
-	remove: function(elem, types, handler) {
-		// don't do events on text and comment nodes
-		if ( elem.nodeType == 3 || elem.nodeType == 8 )
-			return;
-
-		var events = jQuery.data(elem, "events"), ret, index;
-
-		if ( events ) {
-			// Unbind all events for the element
-			if ( types == undefined )
-				for ( var type in events )
-					this.remove( elem, type );
-			else {
-				// types is actually an event object here
-				if ( types.type ) {
-					handler = types.handler;
-					types = types.type;
-				}
-				
-				// Handle multiple events seperated by a space
-				// jQuery(...).unbind("mouseover mouseout", fn);
-				jQuery.each(types.split(/\s+/), function(index, type){
-					// Namespaced event handlers
-					var parts = type.split(".");
-					type = parts[0];
-					
-					if ( events[type] ) {
-						// remove the given handler for the given type
-						if ( handler )
-							delete events[type][handler.guid];
-			
-						// remove all handlers for the given type
-						else
-							for ( handler in events[type] )
-								// Handle the removal of namespaced events
-								if ( !parts[1] || events[type][handler].type == parts[1] )
-									delete events[type][handler];
-
-						// remove generic event handler if no more handlers exist
-						for ( ret in events[type] ) break;
-						if ( !ret ) {
-							if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) {
-								if (elem.removeEventListener)
-									elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
-								else if (elem.detachEvent)
-									elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
-							}
-							ret = null;
-							delete events[type];
-						}
-					}
-				});
-			}
-
-			// Remove the expando if it's no longer used
-			for ( ret in events ) break;
-			if ( !ret ) {
-				jQuery.removeData( elem, "events" );
-				jQuery.removeData( elem, "handle" );
-			}
-		}
-	},
-
-	trigger: function(type, data, elem, donative, extra) {
-		// Clone the incoming data, if any
-		data = jQuery.makeArray(data || []);
-
-		// Handle a global trigger
-		if ( !elem ) {
-			// Only trigger if we've ever bound an event for it
-			if ( this.global[type] )
-				jQuery("*").add([window, document]).trigger(type, data);
-
-		// Handle triggering a single element
-		} else {
-			// don't do events on text and comment nodes
-			if ( elem.nodeType == 3 || elem.nodeType == 8 )
-				return undefined;
-
-			var val, ret, fn = jQuery.isFunction( elem[ type ] || null ),
-				// Check to see if we need to provide a fake event, or not
-				event = !data[0] || !data[0].preventDefault;
-			
-			// Pass along a fake event
-			if ( event )
-				data.unshift( this.fix({ type: type, target: elem }) );
-
-			// Enforce the right trigger type
-			data[0].type = type;
-
-			// Trigger the event
-			if ( jQuery.isFunction( jQuery.data(elem, "handle") ) )
-				val = jQuery.data(elem, "handle").apply( elem, data );
-
-			// Handle triggering native .onfoo handlers
-			if ( !fn && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
-				val = false;
-
-			// Extra functions don't get the custom event object
-			if ( event )
-				data.shift();
-
-			// Handle triggering of extra function
-			if ( extra && jQuery.isFunction( extra ) ) {
-				// call the extra function and tack the current return value on the end for possible inspection
-				var ret = extra.apply( elem, data.concat( val ) );
-				// if anything is returned, give it precedence and have it overwrite the previous value
-				if (ret !== undefined)
-					val = ret;
-			}
-
-			// Trigger the native events (except for clicks on links)
-			if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
-				this.triggered = true;
-				try {
-					elem[ type ]();
-				// prevent IE from throwing an error for some hidden elements
-				} catch (e) {}
-			}
-
-			this.triggered = false;
-		}
-
-		return val;
-	},
-
-	handle: function(event) {
-		// returned undefined or false
-		var val;
-
-		// Empty object is for triggered events with no data
-		event = jQuery.event.fix( event || window.event || {} ); 
-
-		// Namespaced event handlers
-		var parts = event.type.split(".");
-		event.type = parts[0];
-
-		var handlers = jQuery.data(this, "events") && jQuery.data(this, "events")[event.type], args = Array.prototype.slice.call( arguments, 1 );
-		args.unshift( event );
-
-		for ( var j in handlers ) {
-			var handler = handlers[j];
-			// Pass in a reference to the handler function itself
-			// So that we can later remove it
-			args[0].handler = handler;
-			args[0].data = handler.data;
-
-			// Filter the functions by class
-			if ( !parts[1] || handler.type == parts[1] ) {
-				var ret = handler.apply( this, args );
-
-				if ( val !== false )
-					val = ret;
-
-				if ( ret === false ) {
-					event.preventDefault();
-					event.stopPropagation();
-				}
-			}
-		}
-
-		// Clean up added properties in IE to prevent memory leak
-		if (jQuery.browser.msie)
-			event.target = event.preventDefault = event.stopPropagation =
-				event.handler = event.data = null;
-
-		return val;
-	},
-
-	fix: function(event) {
-		// Short-circuit if the event has already been fixed by jQuery.event.fix
-		if ( event[ expando ] )
-			return event;
-			
-		// store a copy of the original event object 
-		// and clone to set read-only properties
-		var originalEvent = event;
-		event = jQuery.extend({}, originalEvent);
-		
-		// Mark the event as fixed by jQuery.event.fix
-		event[ expando ] = true;
-		
-		// add preventDefault and stopPropagation since 
-		// they will not work on the clone
-		event.preventDefault = function() {
-			// if preventDefault exists run it on the original event
-			if (originalEvent.preventDefault)
-				originalEvent.preventDefault();
-			// otherwise set the returnValue property of the original event to false (IE)
-			originalEvent.returnValue = false;
-		};
-		event.stopPropagation = function() {
-			// if stopPropagation exists run it on the original event
-			if (originalEvent.stopPropagation)
-				originalEvent.stopPropagation();
-			// otherwise set the cancelBubble property of the original event to true (IE)
-			originalEvent.cancelBubble = true;
-		};
-		
-		// Fix target property, if necessary
-		if ( !event.target )
-			event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
-				
-		// check if target is a textnode (safari)
-		if ( event.target.nodeType == 3 )
-			event.target = originalEvent.target.parentNode;
-
-		// Add relatedTarget, if necessary
-		if ( !event.relatedTarget && event.fromElement )
-			event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
-
-		// Calculate pageX/Y if missing and clientX/Y available
-		if ( event.pageX == null && event.clientX != null ) {
-			var doc = document.documentElement, body = document.body;
-			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
-			event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
-		}
-			
-		// Add which for key events
-		if ( !event.which && (event.charCode || event.keyCode) )
-			event.which = event.charCode || event.keyCode;
-		
-		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-		if ( !event.metaKey && event.ctrlKey )
-			event.metaKey = event.ctrlKey;
-
-		// Add which for click: 1 == left; 2 == middle; 3 == right
-		// Note: button is not normalized, so don't use it
-		if ( !event.which && event.button )
-			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-			
-		return event;
-	},
-	
-	special: {
-		ready: {
-			setup: function() {
-				// Make sure the ready event is setup
-				bindReady();
-				return;
-			},
-			
-			teardown: function() { return; }
-		},
-		
-		mouseenter: {
-			setup: function() {
-				if ( jQuery.browser.msie ) return false;
-				jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler);
-				return true;
-			},
-		
-			teardown: function() {
-				if ( jQuery.browser.msie ) return false;
-				jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler);
-				return true;
-			},
-			
-			handler: function(event) {
-				// If we actually just moused on to a sub-element, ignore it
-				if ( withinElement(event, this) ) return true;
-				// Execute the right handlers by setting the event type to mouseenter
-				arguments[0].type = "mouseenter";
-				return jQuery.event.handle.apply(this, arguments);
-			}
-		},
-	
-		mouseleave: {
-			setup: function() {
-				if ( jQuery.browser.msie ) return false;
-				jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler);
-				return true;
-			},
-		
-			teardown: function() {
-				if ( jQuery.browser.msie ) return false;
-				jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler);
-				return true;
-			},
-			
-			handler: function(event) {
-				// If we actually just moused on to a sub-element, ignore it
-				if ( withinElement(event, this) ) return true;
-				// Execute the right handlers by setting the event type to mouseleave
-				arguments[0].type = "mouseleave";
-				return jQuery.event.handle.apply(this, arguments);
-			}
-		}
-	}
-};
-
-jQuery.fn.extend({
-	bind: function( type, data, fn ) {
-		return type == "unload" ? this.one(type, data, fn) : this.each(function(){
-			jQuery.event.add( this, type, fn || data, fn && data );
-		});
-	},
-	
-	one: function( type, data, fn ) {
-		return this.each(function(){
-			jQuery.event.add( this, type, function(event) {
-				jQuery(this).unbind(event);
-				return (fn || data).apply( this, arguments);
-			}, fn && data);
-		});
-	},
-
-	unbind: function( type, fn ) {
-		return this.each(function(){
-			jQuery.event.remove( this, type, fn );
-		});
-	},
-
-	trigger: function( type, data, fn ) {
-		return this.each(function(){
-			jQuery.event.trigger( type, data, this, true, fn );
-		});
-	},
-
-	triggerHandler: function( type, data, fn ) {
-		if ( this[0] )
-			return jQuery.event.trigger( type, data, this[0], false, fn );
-		return undefined;
-	},
-
-	toggle: function() {
-		// Save reference to arguments for access in closure
-		var args = arguments;
-
-		return this.click(function(event) {
-			// Figure out which function to execute
-			this.lastToggle = 0 == this.lastToggle ? 1 : 0;
-			
-			// Make sure that clicks stop
-			event.preventDefault();
-			
-			// and execute the function
-			return args[this.lastToggle].apply( this, arguments ) || false;
-		});
-	},
-
-	hover: function(fnOver, fnOut) {
-		return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut);
-	},
-	
-	ready: function(fn) {
-		// Attach the listeners
-		bindReady();
-
-		// If the DOM is already ready
-		if ( jQuery.isReady )
-			// Execute the function immediately
-			fn.call( document, jQuery );
-			
-		// Otherwise, remember the function for later
-		else
-			// Add the function to the wait list
-			jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
-	
-		return this;
-	}
-});
-
-jQuery.extend({
-	isReady: false,
-	readyList: [],
-	// Handle when the DOM is ready
-	ready: function() {
-		// Make sure that the DOM is not already loaded
-		if ( !jQuery.isReady ) {
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-			
-			// If there are functions bound, to execute
-			if ( jQuery.readyList ) {
-				// Execute all of them
-				jQuery.each( jQuery.readyList, function(){
-					this.apply( document );
-				});
-				
-				// Reset the list of functions
-				jQuery.readyList = null;
-			}
-		
-			// Trigger any bound ready events
-			$(document).triggerHandler("ready");
-		}
-	}
-});
-
-var readyBound = false;
-
-function bindReady(){
-	if ( readyBound ) return;
-	readyBound = true;
-
-	// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
-	if ( document.addEventListener && !jQuery.browser.opera)
-		// Use the handy event callback
-		document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
-	
-	// If IE is used and is not in a frame
-	// Continually check to see if the document is ready
-	if ( jQuery.browser.msie && window == top ) (function(){
-		if (jQuery.isReady) return;
-		try {
-			// If IE is used, use the trick by Diego Perini
-			// http://javascript.nwbox.com/IEContentLoaded/
-			document.documentElement.doScroll("left");
-		} catch( error ) {
-			setTimeout( arguments.callee, 0 );
-			return;
-		}
-		// and execute any waiting functions
-		jQuery.ready();
-	})();
-
-	if ( jQuery.browser.opera )
-		document.addEventListener( "DOMContentLoaded", function () {
-			if (jQuery.isReady) return;
-			for (var i = 0; i < document.styleSheets.length; i++)
-				if (document.styleSheets[i].disabled) {
-					setTimeout( arguments.callee, 0 );
-					return;
-				}
-			// and execute any waiting functions
-			jQuery.ready();
-		}, false);
-
-	if ( jQuery.browser.safari ) {
-		var numStyles;
-		(function(){
-			if (jQuery.isReady) return;
-			if ( document.readyState != "loaded" && document.readyState != "complete" ) {
-				setTimeout( arguments.callee, 0 );
-				return;
-			}
-			if ( numStyles === undefined )
-				numStyles = jQuery("style, link[rel=stylesheet]").length;
-			if ( document.styleSheets.length != numStyles ) {
-				setTimeout( arguments.callee, 0 );
-				return;
-			}
-			// and execute any waiting functions
-			jQuery.ready();
-		})();
-	}
-
-	// A fallback to window.onload, that will always work
-	jQuery.event.add( window, "load", jQuery.ready );
-}
-
-jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
-	"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + 
-	"submit,keydown,keypress,keyup,error").split(","), function(i, name){
-	
-	// Handle event binding
-	jQuery.fn[name] = function(fn){
-		return fn ? this.bind(name, fn) : this.trigger(name);
-	};
-});
-
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function(event, elem) {
-	// Check if mouse(over|out) are still within the same parent element
-	var parent = event.relatedTarget;
-	// Traverse up the tree
-	while ( parent && parent != elem ) try { parent = parent.parentNode } catch(error) { parent = elem; };
-	// Return true if we actually just moused on to a sub-element
-	return parent == elem;
-};
-
-// Prevent memory leaks in IE
-// And prevent errors on refresh with events like mouseover in other browsers
-// Window isn't included so as not to unbind existing unload events
-jQuery(window).bind("unload", function() {
-	jQuery("*").add(document).unbind();
-});
-jQuery.fn.extend({
-	load: function( url, params, callback ) {
-		if ( jQuery.isFunction( url ) )
-			return this.bind("load", url);
-
-		var off = url.indexOf(" ");
-		if ( off >= 0 ) {
-			var selector = url.slice(off, url.length);
-			url = url.slice(0, off);
-		}
-
-		callback = callback || function(){};
-
-		// Default to a GET request
-		var type = "GET";
-
-		// If the second parameter was provided
-		if ( params )
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = null;
-
-			// Otherwise, build a param string
-			} else {
-				params = jQuery.param( params );
-				type = "POST";
-			}
-
-		var self = this;
-
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			complete: function(res, status){
-				// If successful, inject the HTML into all the matched elements
-				if ( status == "success" || status == "notmodified" )
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div/>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
-
-							// Locate the specified elements
-							.find(selector) :
-
-						// If not, just inject the full result
-						res.responseText );
-
-				self.each( callback, [res.responseText, status, res] );
-			}
-		});
-		return this;
-	},
-
-	serialize: function() {
-		return jQuery.param(this.serializeArray());
-	},
-	serializeArray: function() {
-		return this.map(function(){
-			return jQuery.nodeName(this, "form") ?
-				jQuery.makeArray(this.elements) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled && 
-				(this.checked || /select|textarea/i.test(this.nodeName) || 
-					/text|hidden|password/i.test(this.type));
-		})
-		.map(function(i, elem){
-			var val = jQuery(this).val();
-			return val == null ? null :
-				val.constructor == Array ?
-					jQuery.map( val, function(val, i){
-						return {name: elem.name, value: val};
-					}) :
-					{name: elem.name, value: val};
-		}).get();
-	}
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
-	jQuery.fn[o] = function(f){
-		return this.bind(o, f);
-	};
-});
-
-var jsc = (new Date).getTime();
-
-jQuery.extend({
-	get: function( url, data, callback, type ) {
-		// shift arguments if data argument was ommited
-		if ( jQuery.isFunction( data ) ) {
-			callback = data;
-			data = null;
-		}
-		
-		return jQuery.ajax({
-			type: "GET",
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	},
-
-	getScript: function( url, callback ) {
-		return jQuery.get(url, null, callback, "script");
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get(url, data, callback, "json");
-	},
-
-	post: function( url, data, callback, type ) {
-		if ( jQuery.isFunction( data ) ) {
-			callback = data;
-			data = {};
-		}
-
-		return jQuery.ajax({
-			type: "POST",
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	},
-
-	ajaxSetup: function( settings ) {
-		jQuery.extend( jQuery.ajaxSettings, settings );
-	},
-
-	ajaxSettings: {
-		global: true,
-		type: "GET",
-		timeout: 0,
-		contentType: "application/x-www-form-urlencoded",
-		processData: true,
-		async: true,
-		data: null
-	},
-	
-	// Last-Modified header cache for next request
-	lastModified: {},
-
-	ajax: function( s ) {
-		var jsonp, jsre = /=\?(&|$)/g, status, data;
-
-		// Extend the settings, but re-extend 's' so that it can be
-		// checked again later (in the test suite, specifically)
-		s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
-
-		// convert data if not already a string
-		if ( s.data && s.processData && typeof s.data != "string" )
-			s.data = jQuery.param(s.data);
-
-		// Handle JSONP Parameter Callbacks
-		if ( s.dataType == "jsonp" ) {
-			if ( s.type.toLowerCase() == "get" ) {
-				if ( !s.url.match(jsre) )
-					s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
-			} else if ( !s.data || !s.data.match(jsre) )
-				s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
-			s.dataType = "json";
-		}
-
-		// Build temporary JSONP function
-		if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
-			jsonp = "jsonp" + jsc++;
-
-			// Replace the =? sequence both in the query string and the data
-			if ( s.data )
-				s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
-			s.url = s.url.replace(jsre, "=" + jsonp + "$1");
-
-			// We need to make sure
-			// that a JSONP style response is executed properly
-			s.dataType = "script";
-
-			// Handle JSONP-style loading
-			window[ jsonp ] = function(tmp){
-				data = tmp;
-				success();
-				complete();
-				// Garbage collect
-				window[ jsonp ] = undefined;
-				try{ delete window[ jsonp ]; } catch(e){}
-				if ( head )
-					head.removeChild( script );
-			};
-		}
-
-		if ( s.dataType == "script" && s.cache == null )
-			s.cache = false;
-
-		if ( s.cache === false && s.type.toLowerCase() == "get" ) {
-			var ts = (new Date()).getTime();
-			// try replacing _= if it is there
-			var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
-			// if nothing was replaced, add timestamp to the end
-			s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
-		}
-
-		// If data is available, append data to url for get requests
-		if ( s.data && s.type.toLowerCase() == "get" ) {
-			s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
-
-			// IE likes to send both get and post data, prevent this
-			s.data = null;
-		}
-
-		// Watch for a new set of requests
-		if ( s.global && ! jQuery.active++ )
-			jQuery.event.trigger( "ajaxStart" );
-
-		// If we're requesting a remote document
-		// and trying to load JSON or Script with a GET
-		if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && ( s.dataType == "script" || s.dataType =="json" ) && s.type.toLowerCase() == "get" ) {
-			var head = document.getElementsByTagName("head")[0];
-			var script = document.createElement("script");
-			script.src = s.url;
-			if (s.scriptCharset)
-				script.charset = s.scriptCharset;
-
-			// Handle Script loading
-			if ( !jsonp ) {
-				var done = false;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function(){
-					if ( !done && (!this.readyState || 
-							this.readyState == "loaded" || this.readyState == "complete") ) {
-						done = true;
-						success();
-						complete();
-						head.removeChild( script );
-					}
-				};
-			}
-
-			head.appendChild(script);
-
-			// We handle everything using the script element injection
-			return undefined;
-		}
-
-		var requestDone = false;
-
-		// Create the request object; Microsoft failed to properly
-		// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
-		var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
-
-		// Open the socket
-		xml.open(s.type, s.url, s.async);
-
-		// Need an extra try/catch for cross domain requests in Firefox 3
-		try {
-			// Set the correct header, if data is being sent
-			if ( s.data )
-				xml.setRequestHeader("Content-Type", s.contentType);
-
-			// Set the If-Modified-Since header, if ifModified mode.
-			if ( s.ifModified )
-				xml.setRequestHeader("If-Modified-Since",
-					jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
-
-			// Set header so the called script knows that it's an XMLHttpRequest
-			xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-		} catch(e){}
-
-		// Allow custom headers/mimetypes
-		if ( s.beforeSend )
-			s.beforeSend(xml);
-			
-		if ( s.global )
-			jQuery.event.trigger("ajaxSend", [xml, s]);
-
-		// Wait for a response to come back
-		var onreadystatechange = function(isTimeout){
-			// The transfer is complete and the data is available, or the request timed out
-			if ( !requestDone && xml && (xml.readyState == 4 || isTimeout == "timeout") ) {
-				requestDone = true;
-				
-				// clear poll interval
-				if (ival) {
-					clearInterval(ival);
-					ival = null;
-				}
-				
-				status = isTimeout == "timeout" && "timeout" ||
-					!jQuery.httpSuccess( xml ) && "error" ||
-					s.ifModified && jQuery.httpNotModified( xml, s.url ) && "notmodified" ||
-					"success";
-
-				if ( status == "success" ) {
-					// Watch for, and catch, XML document parse errors
-					try {
-						// process the data (runs the xml through httpData regardless of callback)
-						data = jQuery.httpData( xml, s.dataType );
-					} catch(e) {
-						status = "parsererror";
-					}
-				}
-
-				// Make sure that the request was successful or notmodified
-				if ( status == "success" ) {
-					// Cache Last-Modified header, if ifModified mode.
-					var modRes;
-					try {
-						modRes = xml.getResponseHeader("Last-Modified");
-					} catch(e) {} // swallow exception thrown by FF if header is not available
-	
-					if ( s.ifModified && modRes )
-						jQuery.lastModified[s.url] = modRes;
-
-					// JSONP handles its own success callback
-					if ( !jsonp )
-						success();	
-				} else
-					jQuery.handleError(s, xml, status);
-
-				// Fire the complete handlers
-				complete();
-
-				// Stop memory leaks
-				if ( s.async )
-					xml = null;
-			}
-		};
-		
-		if ( s.async ) {
-			// don't attach the handler to the request, just poll it instead
-			var ival = setInterval(onreadystatechange, 13); 
-
-			// Timeout checker
-			if ( s.timeout > 0 )
-				setTimeout(function(){
-					// Check to see if the request is still happening
-					if ( xml ) {
-						// Cancel the request
-						xml.abort();
-	
-						if( !requestDone )
-							onreadystatechange( "timeout" );
-					}
-				}, s.timeout);
-		}
-			
-		// Send the data
-		try {
-			xml.send(s.data);
-		} catch(e) {
-			jQuery.handleError(s, xml, null, e);
-		}
-		
-		// firefox 1.5 doesn't fire statechange for sync requests
-		if ( !s.async )
-			onreadystatechange();
-
-		function success(){
-			// If a local callback was specified, fire it and pass it the data
-			if ( s.success )
-				s.success( data, status );
-
-			// Fire the global callback
-			if ( s.global )
-				jQuery.event.trigger( "ajaxSuccess", [xml, s] );
-		}
-
-		function complete(){
-			// Process result
-			if ( s.complete )
-				s.complete(xml, status);
-
-			// The request was completed
-			if ( s.global )
-				jQuery.event.trigger( "ajaxComplete", [xml, s] );
-
-			// Handle the global AJAX counter
-			if ( s.global && ! --jQuery.active )
-				jQuery.event.trigger( "ajaxStop" );
-		}
-		
-		// return XMLHttpRequest to allow aborting the request etc.
-		return xml;
-	},
-
-	handleError: function( s, xml, status, e ) {
-		// If a local callback was specified, fire it
-		if ( s.error ) s.error( xml, status, e );
-
-		// Fire the global callback
-		if ( s.global )
-			jQuery.event.trigger( "ajaxError", [xml, s, e] );
-	},
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Determines if an XMLHttpRequest was successful or not
-	httpSuccess: function( r ) {
-		try {
-			// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
-			return !r.status && location.protocol == "file:" ||
-				( r.status >= 200 && r.status < 300 ) || r.status == 304 || r.status == 1223 ||
-				jQuery.browser.safari && r.status == undefined;
-		} catch(e){}
-		return false;
-	},
-
-	// Determines if an XMLHttpRequest returns NotModified
-	httpNotModified: function( xml, url ) {
-		try {
-			var xmlRes = xml.getResponseHeader("Last-Modified");
-
-			// Firefox always returns 200. check Last-Modified date
-			return xml.status == 304 || xmlRes == jQuery.lastModified[url] ||
-				jQuery.browser.safari && xml.status == undefined;
-		} catch(e){}
-		return false;
-	},
-
-	httpData: function( r, type ) {
-		var ct = r.getResponseHeader("content-type");
-		var xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0;
-		var data = xml ? r.responseXML : r.responseText;
-
-		if ( xml && data.documentElement.tagName == "parsererror" )
-			throw "parsererror";
-
-		// If the type is "script", eval it in global context
-		if ( type == "script" )
-			jQuery.globalEval( data );
-
-		// Get the JavaScript object, if JSON is used.
-		if ( type == "json" )
-			data = eval("(" + data + ")");
-
-		return data;
-	},
-
-	// Serialize an array of form elements or a set of
-	// key/values into a query string
-	param: function( a ) {
-		var s = [];
-
-		// If an array was passed in, assume that it is an array
-		// of form elements
-		if ( a.constructor == Array || a.jquery )
-			// Serialize the form elements
-			jQuery.each( a, function(){
-				s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) );
-			});
-
-		// Otherwise, assume that it's an object of key/value pairs
-		else
-			// Serialize the key/values
-			for ( var j in a )
-				// If the value is an array then the key names need to be repeated
-				if ( a[j] && a[j].constructor == Array )
-					jQuery.each( a[j], function(){
-						s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
-					});
-				else
-					s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) );
-
-		// Return the resulting serialization
-		return s.join("&").replace(/%20/g, "+");
-	}
-
-});
-jQuery.fn.extend({
-	show: function(speed,callback){
-		return speed ?
-			this.animate({
-				height: "show", width: "show", opacity: "show"
-			}, speed, callback) :
-			
-			this.filter(":hidden").each(function(){
-				this.style.display = this.oldblock || "";
-				if ( jQuery.css(this,"display") == "none" ) {
-					var elem = jQuery("<" + this.tagName + " />").appendTo("body");
-					this.style.display = elem.css("display");
-					elem.remove();
-				}
-			}).end();
-	},
-	
-	hide: function(speed,callback){
-		return speed ?
-			this.animate({
-				height: "hide", width: "hide", opacity: "hide"
-			}, speed, callback) :
-			
-			this.filter(":visible").each(function(){
-				this.oldblock = this.oldblock || jQuery.css(this,"display");
-				this.style.display = "none";
-			}).end();
-	},
-
-	// Save the old toggle function
-	_toggle: jQuery.fn.toggle,
-	
-	toggle: function( fn, fn2 ){
-		return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
-			this._toggle( fn, fn2 ) :
-			fn ?
-				this.animate({
-					height: "toggle", width: "toggle", opacity: "toggle"
-				}, fn, fn2) :
-				this.each(function(){
-					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
-				});
-	},
-	
-	slideDown: function(speed,callback){
-		return this.animate({height: "show"}, speed, callback);
-	},
-	
-	slideUp: function(speed,callback){
-		return this.animate({height: "hide"}, speed, callback);
-	},
-
-	slideToggle: function(speed, callback){
-		return this.animate({height: "toggle"}, speed, callback);
-	},
-	
-	fadeIn: function(speed, callback){
-		return this.animate({opacity: "show"}, speed, callback);
-	},
-	
-	fadeOut: function(speed, callback){
-		return this.animate({opacity: "hide"}, speed, callback);
-	},
-	
-	fadeTo: function(speed,to,callback){
-		return this.animate({opacity: to}, speed, callback);
-	},
-	
-	animate: function( prop, speed, easing, callback ) {
-		var optall = jQuery.speed(speed, easing, callback);
-
-		return this[ optall.queue === false ? "each" : "queue" ](function(){
-			if ( this.nodeType != 1)
-				return false;
-
-			var opt = jQuery.extend({}, optall);
-			var hidden = jQuery(this).is(":hidden"), self = this;
-			
-			for ( var p in prop ) {
-				if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
-					return jQuery.isFunction(opt.complete) && opt.complete.apply(this);
-
-				if ( p == "height" || p == "width" ) {
-					// Store display property
-					opt.display = jQuery.css(this, "display");
-
-					// Make sure that nothing sneaks out
-					opt.overflow = this.style.overflow;
-				}
-			}
-
-			if ( opt.overflow != null )
-				this.style.overflow = "hidden";
-
-			opt.curAnim = jQuery.extend({}, prop);
-			
-			jQuery.each( prop, function(name, val){
-				var e = new jQuery.fx( self, opt, name );
-
-				if ( /toggle|show|hide/.test(val) )
-					e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
-				else {
-					var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
-						start = e.cur(true) || 0;
-
-					if ( parts ) {
-						var end = parseFloat(parts[2]),
-							unit = parts[3] || "px";
-
-						// We need to compute starting value
-						if ( unit != "px" ) {
-							self.style[ name ] = (end || 1) + unit;
-							start = ((end || 1) / e.cur(true)) * start;
-							self.style[ name ] = start + unit;
-						}
-
-						// If a +=/-= token was provided, we're doing a relative animation
-						if ( parts[1] )
-							end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
-
-						e.custom( start, end, unit );
-					} else
-						e.custom( start, val, "" );
-				}
-			});
-
-			// For JS strict compliance
-			return true;
-		});
-	},
-	
-	queue: function(type, fn){
-		if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
-			fn = type;
-			type = "fx";
-		}
-
-		if ( !type || (typeof type == "string" && !fn) )
-			return queue( this[0], type );
-
-		return this.each(function(){
-			if ( this.nodeType != 1)
-				return;
-
-			if ( fn.constructor == Array )
-				queue(this, type, fn);
-			else {
-				queue(this, type).push( fn );
-			
-				if ( queue(this, type).length == 1 )
-					fn.apply(this);
-			}
-		});
-	},
-
-	stop: function(clearQueue, gotoEnd){
-		var timers = jQuery.timers;
-
-		if (clearQueue)
-			this.queue([]);
-
-		this.each(function(){
-			// go in reverse order so anything added to the queue during the loop is ignored
-			for ( var i = timers.length - 1; i >= 0; i-- )
-				if ( timers[i].elem == this ) {
-					if (gotoEnd)
-						// force the next step to be the last
-						timers[i](true);
-					timers.splice(i, 1);
-				}
-		});
-
-		// start the next in the queue if the last step wasn't forced
-		if (!gotoEnd)
-			this.dequeue();
-
-		return this;
-	}
-
-});
-
-var queue = function( elem, type, array ) {
-	if ( !elem )
-		return undefined;
-
-	type = type || "fx";
-
-	var q = jQuery.data( elem, type + "queue" );
-
-	if ( !q || array )
-		q = jQuery.data( elem, type + "queue", 
-			array ? jQuery.makeArray(array) : [] );
-
-	return q;
-};
-
-jQuery.fn.dequeue = function(type){
-	type = type || "fx";
-
-	return this.each(function(){
-		var q = queue(this, type);
-
-		q.shift();
-
-		if ( q.length )
-			q[0].apply( this );
-	});
-};
-
-jQuery.extend({
-	
-	speed: function(speed, easing, fn) {
-		var opt = speed && speed.constructor == Object ? speed : {
-			complete: fn || !fn && easing || 
-				jQuery.isFunction( speed ) && speed,
-			duration: speed,
-			easing: fn && easing || easing && easing.constructor != Function && easing
-		};
-
-		opt.duration = (opt.duration && opt.duration.constructor == Number ? 
-			opt.duration : 
-			{ slow: 600, fast: 200 }[opt.duration]) || 400;
-	
-		// Queueing
-		opt.old = opt.complete;
-		opt.complete = function(){
-			if ( opt.queue !== false )
-				jQuery(this).dequeue();
-			if ( jQuery.isFunction( opt.old ) )
-				opt.old.apply( this );
-		};
-	
-		return opt;
-	},
-	
-	easing: {
-		linear: function( p, n, firstNum, diff ) {
-			return firstNum + diff * p;
-		},
-		swing: function( p, n, firstNum, diff ) {
-			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
-		}
-	},
-	
-	timers: [],
-	timerId: null,
-
-	fx: function( elem, options, prop ){
-		this.options = options;
-		this.elem = elem;
-		this.prop = prop;
-
-		if ( !options.orig )
-			options.orig = {};
-	}
-
-});
-
-jQuery.fx.prototype = {
-
-	// Simple function for setting a style value
-	update: function(){
-		if ( this.options.step )
-			this.options.step.apply( this.elem, [ this.now, this ] );
-
-		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-
-		// Set display property to block for height/width animations
-		if ( this.prop == "height" || this.prop == "width" )
-			this.elem.style.display = "block";
-	},
-
-	// Get the current size
-	cur: function(force){
-		if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null )
-			return this.elem[ this.prop ];
-
-		var r = parseFloat(jQuery.css(this.elem, this.prop, force));
-		return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
-	},
-
-	// Start an animation from one number to another
-	custom: function(from, to, unit){
-		this.startTime = (new Date()).getTime();
-		this.start = from;
-		this.end = to;
-		this.unit = unit || this.unit || "px";
-		this.now = this.start;
-		this.pos = this.state = 0;
-		this.update();
-
-		var self = this;
-		function t(gotoEnd){
-			return self.step(gotoEnd);
-		}
-
-		t.elem = this.elem;
-
-		jQuery.timers.push(t);
-
-		if ( jQuery.timerId == null ) {
-			jQuery.timerId = setInterval(function(){
-				var timers = jQuery.timers;
-				
-				for ( var i = 0; i < timers.length; i++ )
-					if ( !timers[i]() )
-						timers.splice(i--, 1);
-
-				if ( !timers.length ) {
-					clearInterval( jQuery.timerId );
-					jQuery.timerId = null;
-				}
-			}, 13);
-		}
-	},
-
-	// Simple 'show' function
-	show: function(){
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
-		this.options.show = true;
-
-		// Begin the animation
-		this.custom(0, this.cur());
-
-		// Make sure that we start at a small width/height to avoid any
-		// flash of content
-		if ( this.prop == "width" || this.prop == "height" )
-			this.elem.style[this.prop] = "1px";
-		
-		// Start by showing the element
-		jQuery(this.elem).show();
-	},
-
-	// Simple 'hide' function
-	hide: function(){
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
-		this.options.hide = true;
-
-		// Begin the animation
-		this.custom(this.cur(), 0);
-	},
-
-	// Each step of an animation
-	step: function(gotoEnd){
-		var t = (new Date()).getTime();
-
-		if ( gotoEnd || t > this.options.duration + this.startTime ) {
-			this.now = this.end;
-			this.pos = this.state = 1;
-			this.update();
-
-			this.options.curAnim[ this.prop ] = true;
-
-			var done = true;
-			for ( var i in this.options.curAnim )
-				if ( this.options.curAnim[i] !== true )
-					done = false;
-
-			if ( done ) {
-				if ( this.options.display != null ) {
-					// Reset the overflow
-					this.elem.style.overflow = this.options.overflow;
-				
-					// Reset the display
-					this.elem.style.display = this.options.display;
-					if ( jQuery.css(this.elem, "display") == "none" )
-						this.elem.style.display = "block";
-				}
-
-				// Hide the element if the "hide" operation was done
-				if ( this.options.hide )
-					this.elem.style.display = "none";
-
-				// Reset the properties, if the item has been hidden or shown
-				if ( this.options.hide || this.options.show )
-					for ( var p in this.options.curAnim )
-						jQuery.attr(this.elem.style, p, this.options.orig[p]);
-			}
-
-			// If a callback was provided, execute it
-			if ( done && jQuery.isFunction( this.options.complete ) )
-				// Execute the complete function
-				this.options.complete.apply( this.elem );
-
-			return false;
-		} else {
-			var n = t - this.startTime;
-			this.state = n / this.options.duration;
-
-			// Perform the easing function, defaults to swing
-			this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
-			this.now = this.start + ((this.end - this.start) * this.pos);
-
-			// Perform the next step of the animation
-			this.update();
-		}
-
-		return true;
-	}
-
-};
-
-jQuery.fx.step = {
-	scrollLeft: function(fx){
-		fx.elem.scrollLeft = fx.now;
-	},
-
-	scrollTop: function(fx){
-		fx.elem.scrollTop = fx.now;
-	},
-
-	opacity: function(fx){
-		jQuery.attr(fx.elem.style, "opacity", fx.now);
-	},
-
-	_default: function(fx){
-		fx.elem.style[ fx.prop ] = fx.now + fx.unit;
-	}
-};
-// The Offset Method
-// Originally By Brandon Aaron, part of the Dimension Plugin
-// http://jquery.com/plugins/project/dimensions
-jQuery.fn.offset = function() {
-	var left = 0, top = 0, elem = this[0], results;
-	
-	if ( elem ) with ( jQuery.browser ) {
-		var parent       = elem.parentNode, 
-		    offsetChild  = elem,
-		    offsetParent = elem.offsetParent, 
-		    doc          = elem.ownerDocument,
-		    safari2      = safari && parseInt(version) < 522,
-		    fixed        = jQuery.css(elem, "position") == "fixed";
-	
-		// Use getBoundingClientRect if available
-		if ( elem.getBoundingClientRect ) {
-			var box = elem.getBoundingClientRect();
-		
-			// Add the document scroll offsets
-			add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
-				box.top  + Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
-		
-			// IE adds the HTML element's border, by default it is medium which is 2px
-			// IE 6 and 7 quirks mode the border width is overwritable by the following css html { border: 0; }
-			// IE 7 standards mode, the border is always 2px
-			// This border/offset is typically represented by the clientLeft and clientTop properties
-			// However, in IE6 and 7 quirks mode the clientLeft and clientTop properties are not updated when overwriting it via CSS
-			// Therefore this method will be off by 2px in IE while in quirksmode
-			add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop );
-	
-		// Otherwise loop through the offsetParents and parentNodes
-		} else {
-		
-			// Initial element offsets
-			add( elem.offsetLeft, elem.offsetTop );
-			
-			// Get parent offsets
-			while ( offsetParent ) {
-				// Add offsetParent offsets
-				add( offsetParent.offsetLeft, offsetParent.offsetTop );
-			
-				// Mozilla and Safari > 2 does not include the border on offset parents
-				// However Mozilla adds the border for table or table cells
-				if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 )
-					border( offsetParent );
-					
-				// Add the document scroll offsets if position is fixed on any offsetParent
-				if ( !fixed && jQuery.css(offsetParent, "position") == "fixed" )
-					fixed = true;
-			
-				// Set offsetChild to previous offsetParent unless it is the body element
-				offsetChild  = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
-				// Get next offsetParent
-				offsetParent = offsetParent.offsetParent;
-			}
-		
-			// Get parent scroll offsets
-			while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) {
-				// Remove parent scroll UNLESS that parent is inline or a table to work around Opera inline/table scrollLeft/Top bug
-				if ( !/^inline|table.*$/i.test(jQuery.css(parent, "display")) )
-					// Subtract parent scroll offsets
-					add( -parent.scrollLeft, -parent.scrollTop );
-			
-				// Mozilla does not add the border for a parent that has overflow != visible
-				if ( mozilla && jQuery.css(parent, "overflow") != "visible" )
-					border( parent );
-			
-				// Get next parent
-				parent = parent.parentNode;
-			}
-		
-			// Safari <= 2 doubles body offsets with a fixed position element/offsetParent or absolutely positioned offsetChild
-			// Mozilla doubles body offsets with a non-absolutely positioned offsetChild
-			if ( (safari2 && (fixed || jQuery.css(offsetChild, "position") == "absolute")) || 
-				(mozilla && jQuery.css(offsetChild, "position") != "absolute") )
-					add( -doc.body.offsetLeft, -doc.body.offsetTop );
-			
-			// Add the document scroll offsets if position is fixed
-			if ( fixed )
-				add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
-					Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
-		}
-
-		// Return an object with top and left properties
-		results = { top: top, left: left };
-	}
-
-	function border(elem) {
-		add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) );
-	}
-
-	function add(l, t) {
-		left += parseInt(l) || 0;
-		top += parseInt(t) || 0;
-	}
-
-	return results;
-};
-})();
diff --git a/src/public/javascripts/jquery-treeview/ovirt.treeview.css b/src/public/javascripts/jquery-treeview/ovirt.treeview.css
deleted file mode 100644
index 69d6b14..0000000
--- a/src/public/javascripts/jquery-treeview/ovirt.treeview.css
+++ /dev/null
@@ -1,88 +0,0 @@
-.treeview, .treeview ul { 
-	padding: 0;
-	margin: 0;
-	list-style: none;
-}
-
-.treeview ul {
-	background-color: white;
-	margin-top: 4px;
-}
-
-.treeview .hitarea {
-	background: url('images/treeview-default.gif') -64px -25px no-repeat;
-	height: 16px;
-	width: 16px;
-	margin-left: -16px;
-	float: left;
-	cursor: pointer;
-}
-/* fix for IE6 */
-* html .hitarea {
-	display: inline;
-	float:none;
-}
-
-.treeview li { 
-	margin: 0;
-	padding: 3px 0pt 3px 16px;
-}
-
-.treeview a.selected {
-	background-color: #DEE7EB;
-}
-.treeview a {color:#000000;text-decoration:none;}
-
-.treeview a:visited{color:#000000;}
-
-#treecontrol { margin: 1em 0; display: none; }
-
-/*.treeview .hover { background:#DEE7EB; cursor: pointer; }*/
-
-.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
-.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
-
-.treeview .expandable-hitarea { background-position: -80px -3px; }
-
-.treeview li.last { background-position: 0 -1766px }
-.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif);  }  
-.treeview li.lastCollapsable { background-position: 0 -111px;    }
-.treeview li.lastExpandable { background-position: -32px -67px }
-
-.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0;}
- 
-
-.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); margin: 0 0px 0 10px; }
-.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } 
-
-
-.filetree li { padding: 3px 0 2px 16px; }
-.filetree span.folder, .filetree span.file { padding: 4px 0pt 5px 24px; display: block; }
-
-.filetree span.folder { background: url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-.filetree span.folder.hover { background: #DEE7EB url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-
-.filetree li.expandable span.folder { background: url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-.filetree li.expandable span.folder.hover { background: #DEE7EB url(images/icon_hdwarepool.png) 0 0 no-repeat; }
-
-.filetree span.file { background: url(images/icon_vmpool.png) 0 0 no-repeat; }
-.filetree span.file.hover { background: #DEE7EB url(images/icon_vmpool.png) 0 0 no-repeat; }
-
-.current_folder, .current_folder.hover { padding: 6px 0pt 5px 28px; background:#698FA6 url(images/icon_hdwarepool.png) 4px 2px no-repeat; color:#FFFFFF; display:block; }
-.current_folder a, .current_folder a:visited {color:#FFFFFF; }
-
-.current_file, .current_file.hover { padding: 6px 0pt 5px 28px; background:#698FA6 url(images/icon_vmpool.png) 4px 2px no-repeat; color:#FFFFFF; display:block; }
-.current_file a, .current_file a:visited {color:#FFFFFF;}
-
-.disabled_folder, .disabled_folder.hover { 
-    padding: 4px 0pt 5px 24px; 
-    background: url(images/icon_hdwarepool_disabled.png) 0 0 no-repeat; 
-    display:block; 
-    color:#CCCCCC; 
-}
-.disabled_file, .disabled_file.hover { 
-    padding: 4px 0pt 5px 24px; 
-    background: url(images/icon_vmpool_disabled.png) 0 0 no-repeat; 
-    display:block;
-    color:#CCCCCC;
-}
diff --git a/src/public/javascripts/jquery-treeview/todo b/src/public/javascripts/jquery-treeview/todo
deleted file mode 100644
index 3ce543d..0000000
--- a/src/public/javascripts/jquery-treeview/todo
+++ /dev/null
@@ -1,8 +0,0 @@
-1.5
----
-
-* add classes and rules for root items
-* lazy-loading: render the complete tree, but only apply hitzones and hiding of children to the first level on load
-* async treeview
-  * support animations
-  * support persist options
\ No newline at end of file
diff --git a/src/public/javascripts/jquery.form.js b/src/public/javascripts/jquery.form.js
deleted file mode 100644
index d45f5f6..0000000
--- a/src/public/javascripts/jquery.form.js
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * jQuery Form Plugin
- * version: 2.10 (05/08/2008)
- * @requires jQuery v1.2.2 or later
- *
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id$
- */
-(function($) {
-
-/*
-    Usage Note:  
-    -----------
-    Do not use both ajaxSubmit and ajaxForm on the same form.  These
-    functions are intended to be exclusive.  Use ajaxSubmit if you want
-    to bind your own submit handler to the form.  For example,
-
-    $(document).ready(function() {
-        $('#myForm').bind('submit', function() {
-            $(this).ajaxSubmit({
-                target: '#output'
-            });
-            return false; // <-- important!
-        });
-    });
-
-    Use ajaxForm when you want the plugin to manage all the event binding
-    for you.  For example,
-
-    $(document).ready(function() {
-        $('#myForm').ajaxForm({
-            target: '#output'
-        });
-    });
-        
-    When using ajaxForm, the ajaxSubmit function will be invoked for you
-    at the appropriate time.  
-*/
-
-/**
- * ajaxSubmit() provides a mechanism for immediately submitting 
- * an HTML form using AJAX.
- */
-$.fn.ajaxSubmit = function(options) {
-    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
-    if (!this.length) {
-        log('ajaxSubmit: skipping submit process - no element selected');
-        return this;
-    }
-
-    if (typeof options == 'function')
-        options = { success: options };
-
-    options = $.extend({
-        url:  this.attr('action') || window.location.toString(),
-        type: this.attr('method') || 'GET'
-    }, options || {});
-
-    // hook for manipulating the form data before it is extracted;
-    // convenient for use with rich editors like tinyMCE or FCKEditor
-    var veto = {};
-    this.trigger('form-pre-serialize', [this, options, veto]);
-    if (veto.veto) {
-        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
-        return this;
-   }
-
-    var a = this.formToArray(options.semantic);
-    if (options.data) {
-        options.extraData = options.data;
-        for (var n in options.data)
-            a.push( { name: n, value: options.data[n] } );
-    }
-
-    // give pre-submit callback an opportunity to abort the submit
-    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
-        log('ajaxSubmit: submit aborted via beforeSubmit callback');
-        return this;
-    }    
-
-    // fire vetoable 'validate' event
-    this.trigger('form-submit-validate', [a, this, options, veto]);
-    if (veto.veto) {
-        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
-        return this;
-    }    
-
-    var q = $.param(a);
-
-    if (options.type.toUpperCase() == 'GET') {
-        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
-        options.data = null;  // data is null for 'get'
-    }
-    else
-        options.data = q; // data is the query string for 'post'
-
-    var $form = this, callbacks = [];
-    if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
-    if (options.clearForm) callbacks.push(function() { $form.clearForm(); });
-
-    // perform a load on the target only if dataType is not provided
-    if (!options.dataType && options.target) {
-        var oldSuccess = options.success || function(){};
-        callbacks.push(function(data) {
-            $(options.target).html(data).each(oldSuccess, arguments);
-        });
-    }
-    else if (options.success)
-        callbacks.push(options.success);
-
-    options.success = function(data, status) {
-        for (var i=0, max=callbacks.length; i < max; i++)
-            callbacks[i](data, status, $form);
-    };
-
-    // are there files to upload?
-    var files = $('input:file', this).fieldValue();
-    var found = false;
-    for (var j=0; j < files.length; j++)
-        if (files[j])
-            found = true;
-
-    // options.iframe allows user to force iframe mode
-   if (options.iframe || found) { 
-       // hack to fix Safari hang (thanks to Tim Molendijk for this)
-       // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
-       if ($.browser.safari && options.closeKeepAlive)
-           $.get(options.closeKeepAlive, fileUpload);
-       else
-           fileUpload();
-       }
-   else
-       $.ajax(options);
-
-    // fire 'notify' event
-    this.trigger('form-submit-notify', [this, options]);
-    return this;
-
-
-    // private function for handling file uploads (hat tip to YAHOO!)
-    function fileUpload() {
-        var form = $form[0];
-        var opts = $.extend({}, $.ajaxSettings, options);
-
-        var id = 'jqFormIO' + (new Date().getTime());
-        var $io = $('<iframe id="' + id + '" name="' + id + '" />');
-        var io = $io[0];
-
-        if ($.browser.msie || $.browser.opera) 
-            io.src = 'javascript:false;document.write("");';
-        $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-
-        var xhr = { // mock object
-            responseText: null,
-            responseXML: null,
-            status: 0,
-            statusText: 'n/a',
-            getAllResponseHeaders: function() {},
-            getResponseHeader: function() {},
-            setRequestHeader: function() {}
-        };
-
-        var g = opts.global;
-        // trigger ajax global events so that activity/block indicators work like normal
-        if (g && ! $.active++) $.event.trigger("ajaxStart");
-        if (g) $.event.trigger("ajaxSend", [xhr, opts]);
-
-        var cbInvoked = 0;
-        var timedOut = 0;
-
-        // take a breath so that pending repaints get some cpu time before the upload starts
-        setTimeout(function() {
-            // make sure form attrs are set
-            var t = $form.attr('target'), a = $form.attr('action');
-            $form.attr({
-                target:   id,
-                encoding: 'multipart/form-data',
-                enctype:  'multipart/form-data',
-                method:   'POST',
-                action:   opts.url
-            });
-
-            // support timout
-            if (opts.timeout)
-                setTimeout(function() { timedOut = true; cb(); }, opts.timeout);
-
-            // add "extra" data to form if provided in options
-            var extraInputs = [];
-            try {
-                if (options.extraData)
-                    for (var n in options.extraData)
-                        extraInputs.push(
-                            $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
-                                .appendTo(form)[0]);
-            
-                // add iframe to doc and submit the form
-                $io.appendTo('body');
-                io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
-                form.submit();
-            }
-            finally {
-                // reset attrs and remove "extra" input elements
-                $form.attr('action', a);
-                t ? $form.attr('target', t) : $form.removeAttr('target');
-                $(extraInputs).remove();
-            }
-        }, 10);
-
-        function cb() {
-            if (cbInvoked++) return;
-            
-            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
-            var operaHack = 0;
-            var ok = true;
-            try {
-                if (timedOut) throw 'timeout';
-                // extract the server response from the iframe
-                var data, doc;
-
-                doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
-                
-                if (doc.body == null && !operaHack && $.browser.opera) {
-                    // In Opera 9.2.x the iframe DOM is not always traversable when
-                    // the onload callback fires so we give Opera 100ms to right itself
-                    operaHack = 1;
-                    cbInvoked--;
-                    setTimeout(cb, 100);
-                    return;
-                }
-                
-                xhr.responseText = doc.body ? doc.body.innerHTML : null;
-                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
-                xhr.getResponseHeader = function(header){
-                    var headers = {'content-type': opts.dataType};
-                    return headers[header];
-                };
-
-                if (opts.dataType == 'json' || opts.dataType == 'script') {
-                    var ta = doc.getElementsByTagName('textarea')[0];
-                    xhr.responseText = ta ? ta.value : xhr.responseText;
-                }
-                else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
-                    xhr.responseXML = toXml(xhr.responseText);
-                }
-                data = $.httpData(xhr, opts.dataType);
-            }
-            catch(e){
-                ok = false;
-                $.handleError(opts, xhr, 'error', e);
-            }
-
-            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
-            if (ok) {
-                opts.success(data, 'success');
-                if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
-            }
-            if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
-            if (g && ! --$.active) $.event.trigger("ajaxStop");
-            if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');
-
-            // clean up
-            setTimeout(function() {
-                $io.remove();
-                xhr.responseXML = null;
-            }, 100);
-        };
-
-        function toXml(s, doc) {
-            if (window.ActiveXObject) {
-                doc = new ActiveXObject('Microsoft.XMLDOM');
-                doc.async = 'false';
-                doc.loadXML(s);
-            }
-            else
-                doc = (new DOMParser()).parseFromString(s, 'text/xml');
-            return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
-        };
-    };
-};
-
-/**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for <input type="image" /> elements (if the element
- *    is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- *    used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */ 
-$.fn.ajaxForm = function(options) {
-    return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
-        $(this).ajaxSubmit(options);
-        return false;
-    }).each(function() {
-        // store options in hash
-        $(":submit,input:image", this).bind('click.form-plugin',function(e) {
-            var $form = this.form;
-            $form.clk = this;
-            if (this.type == 'image') {
-                if (e.offsetX != undefined) {
-                    $form.clk_x = e.offsetX;
-                    $form.clk_y = e.offsetY;
-                } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
-                    var offset = $(this).offset();
-                    $form.clk_x = e.pageX - offset.left;
-                    $form.clk_y = e.pageY - offset.top;
-                } else {
-                    $form.clk_x = e.pageX - this.offsetLeft;
-                    $form.clk_y = e.pageY - this.offsetTop;
-                }
-            }
-            // clear form vars
-            setTimeout(function() { $form.clk = $form.clk_x = $form.clk_y = null; }, 10);
-        });
-    });
-};
-
-// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
-$.fn.ajaxFormUnbind = function() {
-    this.unbind('submit.form-plugin');
-    return this.each(function() {
-        $(":submit,input:image", this).unbind('click.form-plugin');
-    });
-
-};
-
-/**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property.  An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
-$.fn.formToArray = function(semantic) {
-    var a = [];
-    if (this.length == 0) return a;
-
-    var form = this[0];
-    var els = semantic ? form.getElementsByTagName('*') : form.elements;
-    if (!els) return a;
-    for(var i=0, max=els.length; i < max; i++) {
-        var el = els[i];
-        var n = el.name;
-        if (!n) continue;
-
-        if (semantic && form.clk && el.type == "image") {
-            // handle image inputs on the fly when semantic == true
-            if(!el.disabled && form.clk == el)
-                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-            continue;
-        }
-
-        var v = $.fieldValue(el, true);
-        if (v && v.constructor == Array) {
-            for(var j=0, jmax=v.length; j < jmax; j++)
-                a.push({name: n, value: v[j]});
-        }
-        else if (v !== null && typeof v != 'undefined')
-            a.push({name: n, value: v});
-    }
-
-    if (!semantic && form.clk) {
-        // input type=='image' are not found in elements array! handle them here
-        var inputs = form.getElementsByTagName("input");
-        for(var i=0, max=inputs.length; i < max; i++) {
-            var input = inputs[i];
-            var n = input.name;
-            if(n && !input.disabled && input.type == "image" && form.clk == input)
-                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-        }
-    }
-    return a;
-};
-
-/**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&amp;name2=value2
- */
-$.fn.formSerialize = function(semantic) {
-    //hand off to jQuery.param for proper encoding
-    return $.param(this.formToArray(semantic));
-};
-
-/**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&amp;name2=value2
- */
-$.fn.fieldSerialize = function(successful) {
-    var a = [];
-    this.each(function() {
-        var n = this.name;
-        if (!n) return;
-        var v = $.fieldValue(this, successful);
-        if (v && v.constructor == Array) {
-            for (var i=0,max=v.length; i < max; i++)
-                a.push({name: n, value: v[i]});
-        }
-        else if (v !== null && typeof v != 'undefined')
-            a.push({name: this.name, value: v});
-    });
-    //hand off to jQuery.param for proper encoding
-    return $.param(a);
-};
-
-/**
- * Returns the value(s) of the element in the matched set.  For example, consider the following form:
- *
- *  <form><fieldset>
- *      <input name="A" type="text" />
- *      <input name="A" type="text" />
- *      <input name="B" type="checkbox" value="B1" />
- *      <input name="B" type="checkbox" value="B2"/>
- *      <input name="C" type="radio" value="C1" />
- *      <input name="C" type="radio" value="C2" />
- *  </fieldset></form>
- *
- *  var v = $(':text').fieldValue();
- *  // if no values are entered into the text inputs
- *  v == ['','']
- *  // if values entered into the text inputs are 'foo' and 'bar'
- *  v == ['foo','bar']
- *
- *  var v = $(':checkbox').fieldValue();
- *  // if neither checkbox is checked
- *  v === undefined
- *  // if both checkboxes are checked
- *  v == ['B1', 'B2']
- *
- *  var v = $(':radio').fieldValue();
- *  // if neither radio is checked
- *  v === undefined
- *  // if first radio is checked
- *  v == ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
- * The default value of the successful argument is true.  If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array.  If no valid value can be determined the
- *       array will be empty, otherwise it will contain one or more values.
- */
-$.fn.fieldValue = function(successful) {
-    for (var val=[], i=0, max=this.length; i < max; i++) {
-        var el = this[i];
-        var v = $.fieldValue(el, successful);
-        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
-            continue;
-        v.constructor == Array ? $.merge(val, v) : val.push(v);
-    }
-    return val;
-};
-
-/**
- * Returns the value of the field element.
- */
-$.fieldValue = function(el, successful) {
-    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
-    if (typeof successful == 'undefined') successful = true;
-
-    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
-        (t == 'checkbox' || t == 'radio') && !el.checked ||
-        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
-        tag == 'select' && el.selectedIndex == -1))
-            return null;
-
-    if (tag == 'select') {
-        var index = el.selectedIndex;
-        if (index < 0) return null;
-        var a = [], ops = el.options;
-        var one = (t == 'select-one');
-        var max = (one ? index+1 : ops.length);
-        for(var i=(one ? index : 0); i < max; i++) {
-            var op = ops[i];
-            if (op.selected) {
-                // extra pain for IE...
-                var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value;
-                if (one) return v;
-                a.push(v);
-            }
-        }
-        return a;
-    }
-    return el.value;
-};
-
-/**
- * Clears the form data.  Takes the following actions on the form's input fields:
- *  - input text fields will have their 'value' property set to the empty string
- *  - select elements will have their 'selectedIndex' property set to -1
- *  - checkbox and radio inputs will have their 'checked' property set to false
- *  - inputs of type submit, button, reset, and hidden will *not* be effected
- *  - button elements will *not* be effected
- */
-$.fn.clearForm = function() {
-    return this.each(function() {
-        $('input,select,textarea', this).clearFields();
-    });
-};
-
-/**
- * Clears the selected form elements.
- */
-$.fn.clearFields = $.fn.clearInputs = function() {
-    return this.each(function() {
-        var t = this.type, tag = this.tagName.toLowerCase();
-        if (t == 'text' || t == 'password' || tag == 'textarea')
-            this.value = '';
-        else if (t == 'checkbox' || t == 'radio')
-            this.checked = false;
-        else if (tag == 'select')
-            this.selectedIndex = -1;
-    });
-};
-
-/**
- * Resets the form data.  Causes all form elements to be reset to their original value.
- */
-$.fn.resetForm = function() {
-    return this.each(function() {
-        // guard against an input with the name of 'reset'
-        // note that IE reports the reset function as an 'object'
-        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
-            this.reset();
-    });
-};
-
-/**
- * Enables or disables any matching elements.
- */
-$.fn.enable = function(b) { 
-    if (b == undefined) b = true;
-    return this.each(function() { 
-        this.disabled = !b 
-    });
-};
-
-/**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
-$.fn.select = function(select) {
-    if (select == undefined) select = true;
-    return this.each(function() { 
-        var t = this.type;
-        if (t == 'checkbox' || t == 'radio')
-            this.checked = select;
-        else if (this.tagName.toLowerCase() == 'option') {
-            var $sel = $(this).parent('select');
-            if (select && $sel[0] && $sel[0].type == 'select-one') {
-                // deselect all other options
-                $sel.find('option').select(false);
-            }
-            this.selected = select;
-        }
-    });
-};
-
-// helper fn for console logging
-// set $.fn.ajaxSubmit.debug to true to enable debug logging
-function log() {
-    if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
-        window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
-};
-
-})(jQuery);
diff --git a/src/public/javascripts/jquery.jgrowl.js b/src/public/javascripts/jquery.jgrowl.js
deleted file mode 100644
index 1617be2..0000000
--- a/src/public/javascripts/jquery.jgrowl.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- * jGrowl 1.1.0
- *
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * Written by Stan Lemon <stanlemon@mac.com>
- * Last updated: 2008.06.13
- *
- * jGrowl is a jQuery plugin implementing unobtrusive userland notifications.  These 
- * notifications function similarly to the Growl Framework available for
- * Mac OS X (http://growl.info).
- *
- * Changes in 1.1.0
- * - Multiple container and instances.
- * - Standard $.jGrowl() now wraps $.fn.jGrowl() by first establishing a generic jGrowl container.
- * - Instance methods of a jGrowl container can be called by $.fn.jGrowl(methodName)
- * - Added glue preferenced, which allows notifications to be inserted before or after nodes in the container
- * - Added new log callback which is called before anything is done for the notification
- * - Corner's attribute are now applied on an individual notification basis.
- *
- * Changes in 1.0.4
- * - Various CSS fixes so that jGrowl renders correctly in IE6.
- *
- * Changes in 1.0.3
- * - Fixed bug with options persisting across notifications
- * - Fixed theme application bug
- * - Simplified some selectors and manipulations.
- * - Added beforeOpen and beforeClose callbacks
- * - Reorganized some lines of code to be more readable
- * - Removed unnecessary this.defaults context
- * - If corners plugin is present, it's now customizable.
- * - Customizable open animation.
- * - Customizable close animation.
- * - Customizable animation easing.
- * - Added customizable positioning (top-left, top-right, bottom-left, bottom-right, center)
- *
- * Changes in 1.0.2
- * - All CSS styling is now external.
- * - Added a theme parameter which specifies a secondary class for styling, such
- *   that notifications can be customized in appearance on a per message basis.
- * - Notification life span is now customizable on a per message basis.
- * - Added the ability to disable the global closer, enabled by default.
- * - Added callbacks for when a notification is opened or closed.
- * - Added callback for the global closer.
- * - Customizable animation speed.
- * - jGrowl now set itself up and tears itself down.
- *
- * Changes in 1.0.1:
- * - Removed dependency on metadata plugin in favor of .data()
- * - Namespaced all events
- *
- * @todo	Group by header.
- */
-(function($) {
-
-	/** jGrowl Wrapper - Establish a base jGrowl Container for compatibility with older releases. **/
-	$.jGrowl = function( m , o ) {
-		// To maintain compatibility with older version that only supported one instance we'll create the base container.
-		if ( $('#jGrowl').size() == 0 ) $('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');
-		// Create a notification on the container.
-		$('#jGrowl').jGrowl(m,o);
-	};
-
-
-	/** Raise jGrowl Notification on a jGrowl Container **/
-	$.fn.jGrowl = function( m , o ) {
-		if ( $.isFunction(this.each) ) {
-			var args = arguments;
-
-			return this.each(function() {
-				var self = this;
-
-				/** Create a jGrowl Instance on the Container if it does not exist **/
-				if ( $(this).data('jGrowl.instance') == undefined ) {
-					$(this).data('jGrowl.instance', new $.fn.jGrowl());
-					$(this).data('jGrowl.instance').startup( this );
-				}
-
-				/** Optionally call jGrowl instance methods, or just raise a normal notification **/
-				if ( $.isFunction($(this).data('jGrowl.instance')[m]) ) {
-					$(this).data('jGrowl.instance')[m].apply( $(this).data('jGrowl.instance') , $.makeArray(args).slice(1) );
-				} else {
-					$(this).data('jGrowl.instance').notification( m , o );
-				}
-			});
-		};
-	};
-
-	$.extend( $.fn.jGrowl.prototype , {
-
-		/** Default JGrowl Settings **/
-		defaults: {
-			header: 		'',
-			sticky: 		false,
-			position: 		'center', 
-			glue: 			'after',
-			theme: 			'default',
-			corners: 		'10px',
-			check: 			500,
-			life: 			3000,
-			speed: 			'normal',
-			easing: 		'swing',
-			closer: 		true,
-			log: 			function(e,m,o) {},
-			beforeOpen: 	function(e,m,o) {},
-			open: 			function(e,m,o) {},
-			beforeClose: 	function(e,m,o) {},
-			close: 			function(e,m,o) {},
-			animateOpen: 	{
-				opacity: 	'show'
-			},
-			animateClose: 	{
-				opacity: 	'hide'
-			}
-		},
-		
-		/** jGrowl Container Node **/
-		element: 	null,
-	
-		/** Interval Function **/
-		interval:   null,
-		
-		/** Create a Notification **/
-		notification: 	function( message , o ) {
-			var self = this;
-			var o = $.extend({}, this.defaults, o);
-
-			o.log.apply( this.element , [this.element,message,o] );
-
-			var notification = $('<div class="jGrowl-notification"><div class="close">&times;</div><div class="header">' + o.header + '</div><div class="message">' + message + '</div></div>')
-				.data("jGrowl", o).addClass(o.theme).children('div.close').bind("click.jGrowl", function() {
-					$(this).unbind('click.jGrowl').parent().trigger('jGrowl.beforeClose').animate(o.animateClose, o.speed, o.easing, function() {
-						$(this).trigger('jGrowl.close').remove();
-					});
-				}).parent();
-				
-			( o.glue == 'after' ) ? $('div.jGrowl-notification:last', this.element).after(notification) : $('div.jGrowl-notification:first', this.element).before(notification);
-
-			/** Notification Actions **/
-			$(notification).bind("mouseover.jGrowl", function() {
-				$(this).data("jGrowl").pause = true;
-			}).bind("mouseout.jGrowl", function() {
-				$(this).data("jGrowl").pause = false;
-			}).bind('jGrowl.beforeOpen', function() {
-				o.beforeOpen.apply( self.element , [self.element,message,o] );
-			}).bind('jGrowl.open', function() {
-				o.open.apply( self.element , [self.element,message,o] );
-			}).bind('jGrowl.beforeClose', function() {
-				o.beforeClose.apply( self.element , [self.element,message,o] );
-			}).bind('jGrowl.close', function() {
-				o.close.apply( self.element , [self.element,message,o] );
-			}).trigger('jGrowl.beforeOpen').animate(o.animateOpen, o.speed, o.easing, function() {
-				$(this).data("jGrowl").created = new Date();
-			}).trigger('jGrowl.open');
-		
-			/** Optional Corners Plugin **/
-			if ( $.fn.corner != undefined ) $(notification).corner( o.corners );
-
-			/** Add a Global Closer if more than one notification exists **/
-			if ( $('div.jGrowl-notification:parent', this.element).size() > 1 && $('div.jGrowl-closer', this.element).size() == 0 && this.defaults.closer != false ) {
-				$('<div class="jGrowl-closer">[ close all ]</div>').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen, this.defaults.speed, this.defaults.easing).bind("click.jGrowl", function() {
-					$(this).siblings().children('div.close').trigger("click.jGrowl");
-
-					if ( $.isFunction( self.defaults.closer ) ) self.defaults.closer.apply( $(this).parent()[0] , [$(this).parent()[0]] );
-				});
-			};
-		},
-
-		/** Update the jGrowl Container, removing old jGrowl notifications **/
-		update:	 function() {
-			$(this.element).find('div.jGrowl-notification:parent').each( function() {
-				if ( $(this).data("jGrowl") != undefined && $(this).data("jGrowl").created != undefined && ($(this).data("jGrowl").created.getTime() + $(this).data("jGrowl").life)  < (new Date()).getTime() && $(this).data("jGrowl").sticky != true && 
-					 ($(this).data("jGrowl").pause == undefined || $(this).data("jGrowl").pause != true) ) {
-					$(this).children('div.close').trigger('click.jGrowl');
-				}
-			});
-
-			if ( $(this.element).find('div.jGrowl-notification:parent').size() < 2 ) {
-				$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
-					$(this).remove();
-				});
-			};
-		},
-
-		/** Setup the jGrowl Notification Container **/
-		startup:	function(e) {
-			this.element = $(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');
-			this.interval = setInterval( function() { jQuery(e).data('jGrowl.instance').update(); }, this.defaults.check);
-			
-			if ($.browser.msie && parseInt($.browser.version) < 7) $(this.element).addClass('ie6');
-		},
-
-		/** Shutdown jGrowl, removing it and clearing the interval **/
-		shutdown:   function() {
-			$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();
-			clearInterval( this.interval );
-		}
-	});
-	
-	/** Reference the Defaults Object for compatibility with older versions of jGrowl **/
-	$.jGrowl.defaults = $.fn.jGrowl.prototype.defaults;
-
-})(jQuery);
\ No newline at end of file
diff --git a/src/public/javascripts/jquery.livequery.js b/src/public/javascripts/jquery.livequery.js
deleted file mode 100644
index ee7c5f1..0000000
--- a/src/public/javascripts/jquery.livequery.js
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Copyright (c) 2007 Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * Version: 1.0.2
- * Requires jQuery 1.1.3+
- * Docs: http://docs.jquery.com/Plugins/livequery
- */
-
-(function($) {
-	
-$.extend($.fn, {
-	livequery: function(type, fn, fn2) {
-		var self = this, q;
-		
-		// Handle different call patterns
-		if ($.isFunction(type))
-			fn2 = fn, fn = type, type = undefined;
-			
-		// See if Live Query already exists
-		$.each( $.livequery.queries, function(i, query) {
-			if ( self.selector == query.selector && self.context == query.context &&
-				type == query.type && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) )
-					// Found the query, exit the each loop
-					return (q = query) && false;
-		});
-		
-		// Create new Live Query if it wasn't found
-		q = q || new $.livequery(this.selector, this.context, type, fn, fn2);
-		
-		// Make sure it is running
-		q.stopped = false;
-		
-		// Run it
-		$.livequery.run( q.id );
-		
-		// Contnue the chain
-		return this;
-	},
-	
-	expire: function(type, fn, fn2) {
-		var self = this;
-		
-		// Handle different call patterns
-		if ($.isFunction(type))
-			fn2 = fn, fn = type, type = undefined;
-			
-		// Find the Live Query based on arguments and stop it
-		$.each( $.livequery.queries, function(i, query) {
-			if ( self.selector == query.selector && self.context == query.context && 
-				(!type || type == query.type) && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) && !this.stopped )
-					$.livequery.stop(query.id);
-		});
-		
-		// Continue the chain
-		return this;
-	}
-});
-
-$.livequery = function(selector, context, type, fn, fn2) {
-	this.selector = selector;
-	this.context  = context || document;
-	this.type     = type;
-	this.fn       = fn;
-	this.fn2      = fn2;
-	this.elements = [];
-	this.stopped  = false;
-	
-	// The id is the index of the Live Query in $.livequery.queries
-	this.id = $.livequery.queries.push(this)-1;
-	
-	// Mark the functions for matching later on
-	fn.$lqguid = fn.$lqguid || $.livequery.guid++;
-	if (fn2) fn2.$lqguid = fn2.$lqguid || $.livequery.guid++;
-	
-	// Return the Live Query
-	return this;
-};
-
-$.livequery.prototype = {
-	stop: function() {
-		var query = this;
-		
-		if ( this.type )
-			// Unbind all bound events
-			this.elements.unbind(this.type, this.fn);
-		else if (this.fn2)
-			// Call the second function for all matched elements
-			this.elements.each(function(i, el) {
-				query.fn2.apply(el);
-			});
-			
-		// Clear out matched elements
-		this.elements = [];
-		
-		// Stop the Live Query from running until restarted
-		this.stopped = true;
-	},
-	
-	run: function() {
-		// Short-circuit if stopped
-		if ( this.stopped ) return;
-		var query = this;
-		
-		var oEls = this.elements,
-			els  = $(this.selector, this.context),
-			nEls = els.not(oEls);
-		
-		// Set elements to the latest set of matched elements
-		this.elements = els;
-		
-		if (this.type) {
-			// Bind events to newly matched elements
-			nEls.bind(this.type, this.fn);
-			
-			// Unbind events to elements no longer matched
-			if (oEls.length > 0)
-				$.each(oEls, function(i, el) {
-					if ( $.inArray(el, els) < 0 )
-						$.event.remove(el, query.type, query.fn);
-				});
-		}
-		else {
-			// Call the first function for newly matched elements
-			nEls.each(function() {
-				query.fn.apply(this);
-			});
-			
-			// Call the second function for elements no longer matched
-			if ( this.fn2 && oEls.length > 0 )
-				$.each(oEls, function(i, el) {
-					if ( $.inArray(el, els) < 0 )
-						query.fn2.apply(el);
-				});
-		}
-	}
-};
-
-$.extend($.livequery, {
-	guid: 0,
-	queries: [],
-	queue: [],
-	running: false,
-	timeout: null,
-	
-	checkQueue: function() {
-		if ( $.livequery.running && $.livequery.queue.length ) {
-			var length = $.livequery.queue.length;
-			// Run each Live Query currently in the queue
-			while ( length-- )
-				$.livequery.queries[ $.livequery.queue.shift() ].run();
-		}
-	},
-	
-	pause: function() {
-		// Don't run anymore Live Queries until restarted
-		$.livequery.running = false;
-	},
-	
-	play: function() {
-		// Restart Live Queries
-		$.livequery.running = true;
-		// Request a run of the Live Queries
-		$.livequery.run();
-	},
-	
-	registerPlugin: function() {
-		$.each( arguments, function(i,n) {
-			// Short-circuit if the method doesn't exist
-			if (!$.fn[n]) return;
-			
-			// Save a reference to the original method
-			var old = $.fn[n];
-			
-			// Create a new method
-			$.fn[n] = function() {
-				// Call the original method
-				var r = old.apply(this, arguments);
-				
-				// Request a run of the Live Queries
-				$.livequery.run();
-				
-				// Return the original methods result
-				return r;
-			}
-		});
-	},
-	
-	run: function(id) {
-		if (id != undefined) {
-			// Put the particular Live Query in the queue if it doesn't already exist
-			if ( $.inArray(id, $.livequery.queue) < 0 )
-				$.livequery.queue.push( id );
-		}
-		else
-			// Put each Live Query in the queue if it doesn't already exist
-			$.each( $.livequery.queries, function(id) {
-				if ( $.inArray(id, $.livequery.queue) < 0 )
-					$.livequery.queue.push( id );
-			});
-		
-		// Clear timeout if it already exists
-		if ($.livequery.timeout) clearTimeout($.livequery.timeout);
-		// Create a timeout to check the queue and actually run the Live Queries
-		$.livequery.timeout = setTimeout($.livequery.checkQueue, 20);
-	},
-	
-	stop: function(id) {
-		if (id != undefined)
-			// Stop are particular Live Query
-			$.livequery.queries[ id ].stop();
-		else
-			// Stop all Live Queries
-			$.each( $.livequery.queries, function(id) {
-				$.livequery.queries[ id ].stop();
-			});
-	}
-});
-
-// Register core DOM manipulation methods
-$.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove');
-
-// Run Live Queries when the Document is ready
-$(function() { $.livequery.play(); });
-
-
-// Save a reference to the original init method
-var init = $.prototype.init;
-
-// Create a new init method that exposes two new properties: selector and context
-$.prototype.init = function(a,c) {
-	// Call the original init and save the result
-	var r = init.apply(this, arguments);
-	
-	// Copy over properties if they exist already
-	if (a && a.selector)
-		r.context = a.context, r.selector = a.selector;
-		
-	// Set properties
-	if ( typeof a == 'string' )
-		r.context = c || document, r.selector = a;
-	
-	// Return the result
-	return r;
-};
-
-// Give the init function the jQuery prototype for later instantiation (needed after Rev 4091)
-$.prototype.init.prototype = $.prototype;
-	
-})(jQuery);
\ No newline at end of file
diff --git a/src/public/javascripts/jquery.livequery.min.js b/src/public/javascripts/jquery.livequery.min.js
deleted file mode 100644
index 993b4d3..0000000
--- a/src/public/javascripts/jquery.livequery.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright (c) 2007 Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * Version: 1.0.2
- * Requires jQuery 1.1.3+
- * Docs: http://docs.jquery.com/Plugins/livequery
- */
-(function($){$.extend($.fn,{livequery:function(type,fn,fn2){var self=this,q;if($.isFunction(type))fn2=fn,fn=type,type=undefined;$.each($.livequery.queries,function(i,query){if(self.selector==query.selector&&self.context==query.context&&type==query.type&&(!fn||fn.$lqguid==query.fn.$lqguid)&&(!fn2||fn2.$lqguid==query.fn2.$lqguid))return(q=query)&&false;});q=q||new $.livequery(this.selector,this.context,type,fn,fn2);q.stopped=false;$.livequery.run(q.id);return this;},expire:function(type,fn,fn2){var self=this;if($.isFunction(type))fn2=fn,fn=type,type=undefined;$.each($.livequery.queries,function(i,query){if(self.selector==query.selector&&self.context==query.context&&(!type||type==query.type)&&(!fn||fn.$lqguid==query.fn.$lqguid)&&(!fn2||fn2.$lqguid==query.fn2.$lqguid)&&!this.stopped)$.livequery.stop(query.id);});return this;}});$.livequery=function(selector,context,type,fn,fn2){this.selector=selector;this.context=context||document;this.type=type;this.fn=fn;this.fn2=fn2;this.elements=[];this.stopped=false;this.id=$.livequery.queries.push(this)-1;fn.$lqguid=fn.$lqguid||$.livequery.guid++;if(fn2)fn2.$lqguid=fn2.$lqguid||$.livequery.guid++;return this;};$.livequery.prototype={stop:function(){var query=this;if(this.type)this.elements.unbind(this.type,this.fn);else if(this.fn2)this.elements.each(function(i,el){query.fn2.apply(el);});this.elements=[];this.stopped=true;},run:function(){if(this.stopped)return;var query=this;var oEls=this.elements,els=$(this.selector,this.context),nEls=els.not(oEls);this.elements=els;if(this.type){nEls.bind(this.type,this.fn);if(oEls.length>0)$.each(oEls,function(i,el){if($.inArray(el,els)<0)$.event.remove(el,query.type,query.fn);});}else{nEls.each(function(){query.fn.apply(this);});if(this.fn2&&oEls.length>0)$.each(oEls,function(i,el){if($.inArray(el,els)<0)query.fn2.apply(el);});}}};$.extend($.livequery,{guid:0,queries:[],queue:[],running:false,timeout:null,checkQueue:function(){if($.livequery.running&&$.livequery.queue.length){var length=$.livequery.queue.length;while(length--)$.livequery.queries[$.livequery.queue.shift()].run();}},pause:function(){$.livequery.running=false;},play:function(){$.livequery.running=true;$.livequery.run();},registerPlugin:function(){$.each(arguments,function(i,n){if(!$.fn[n])return;var old=$.fn[n];$.fn[n]=function(){var r=old.apply(this,arguments);$.livequery.run();return r;}});},run:function(id){if(id!=undefined){if($.inArray(id,$.livequery.queue)<0)$.livequery.queue.push(id);}else
-$.each($.livequery.queries,function(id){if($.inArray(id,$.livequery.queue)<0)$.livequery.queue.push(id);});if($.livequery.timeout)clearTimeout($.livequery.timeout);$.livequery.timeout=setTimeout($.livequery.checkQueue,20);},stop:function(id){if(id!=undefined)$.livequery.queries[id].stop();else
-$.each($.livequery.queries,function(id){$.livequery.queries[id].stop();});}});$.livequery.registerPlugin('append','prepend','after','before','wrap','attr','removeAttr','addClass','removeClass','toggleClass','empty','remove');$(function(){$.livequery.play();});var init=$.prototype.init;$.prototype.init=function(a,c){var r=init.apply(this,arguments);if(a&&a.selector)r.context=a.context,r.selector=a.selector;if(typeof a=='string')r.context=c||document,r.selector=a;return r;};$.prototype.init.prototype=$.prototype;})(jQuery);
\ No newline at end of file
diff --git a/src/public/javascripts/jquery.livequery.pack.js b/src/public/javascripts/jquery.livequery.pack.js
deleted file mode 100644
index 7485657..0000000
--- a/src/public/javascripts/jquery.livequery.pack.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Copyright (c) 2007 Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * Version: 1.0.2
- * Requires jQuery 1.1.3+
- * Docs: http://docs.jquery.com/Plugins/livequery
- */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(4($){$.R($.7,{3:4(c,b,d){9 e=2,q;5($.O(c))d=b,b=c,c=z;$.h($.3.j,4(i,a){5(e.8==a.8&&e.g==a.g&&c==a.m&&(!b||b.$6==a.7.$6)&&(!d||d.$6==a.o.$6))l(q=a)&&v});q=q||Y $.3(2.8,2.g,c,b,d);q.u=v;$.3.s(q.F);l 2},T:4(c,b,d){9 e=2;5($.O(c))d=b,b=c,c=z;$.h($.3.j,4(i,a){5(e.8==a.8&&e.g==a.g&&(!c||c==a.m)&&(!b||b.$6==a.7.$6)&&(!d||d.$6==a.o.$6)&&!2.u)$.3.y(a.F)});l 2}});$.3=4(e,c,a,b,d){2.8=e;2.g=c||S;2.m=a;2.7=b;2.o=d;2.t=[];2.u=v;2.F=$.3.j.K(2)-1;b.$6=b.$6||$.3.I++;5(d)d.$6=d.$6||$.3.I++;l 2};$.3.p={y:4(){9 b=2;5(2.m)2.t.16(2.m,2.7);E 5(2.o)2.t.h(4(i,a){b.o.x(a)});2.t=[];2.u=Q},s:4(){5(2.u)l;9 b=2;9 c=2.t,w=$(2.8,2.g),H=w.11(c);2.t=w;5(2.m){H.10(2.m,2.7);5(c.C>0)$.h(c,4(i,a){5($.B(a,w)<0)$.Z.P(a,b.m,b.7)})}E{H.h(4(){b.7.x(2)});5(2.o&&c.C>0)$.h(c,4(i,a){5($.B(a,w)<0)b.o.x(a)})}}};$.R($.3,{I:0,j:[],k:[],A:v,D:X,N:4(){5($.3.A&&$.3.k.C){9 a=$.3.k.C;W(a--)$.3.j[$.3.k.V()].s()}},U:4(){$.3.A=v},M:4(){$.3.A=Q;$.3.s()},L:4(){$.h(G,4(i,n){5(!$.7[n])l;9 a=$.7[n];$.7[n]=4(){9 r=a.x(2,G);$.3.s();l r}})},s:4(b){5(b!=z){5($.B(b,$.3.k)<0)$.3.k.K(b)}E $.h($.3.j,4(a){5($.B(a,$.3.k)<0)$.3.k.K(a)});5($.3.D)1j($.3.D);$.3.D=1i($.3.N,1h)},y:4(b){5(b!=z)$.3.j[b].y();E $.h($.3.j,4(a){$.3.j[a].y()})}});$.3.L(\'1g\',\'1f\',\'1e\',\'1b\',\'1a\',\'19\',\'18\',\'17\',\'1c\',\'15\',\'1d\',\'P\');$(4(){$.3.M()});9 f=$.p.J;$.p.J=4(a,c){9 r=f.x(2,G);5(a&&a.8)r.g=a.g,r.8=a.8;5(14 a==\'13\')r.g=c||S,r.8=a;l r};$.p.J.p=$.p})(12);',62,82,'||this|livequery|function|if|lqguid|fn|selector|var|||||||context|each||queries|queue|return|type||fn2|prototype|||run|elements|stopped|false|els|apply|stop|undefined|running|inArray|length|timeout|else|id|arguments|nEls|guid|init|push|registerPlugin|play|checkQueue|isFunction|remove|true|extend|document|expire|pause|shift|while|null|new|event|bind|not|jQuery|string|typeof|toggleClass|unbind|addClass|removeAttr|attr|wrap|before|removeClass|empty|after|prepend|append|20|setTimeout|clearTimeout'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/public/javascripts/jquery.ovirt.treeview.js b/src/public/javascripts/jquery.ovirt.treeview.js
deleted file mode 100644
index bb41667..0000000
--- a/src/public/javascripts/jquery.ovirt.treeview.js
+++ /dev/null
@@ -1,100 +0,0 @@
-;(function($) {
-  var proxied = $.fn.treeview;
-  $.fn.ovirt_treeview = function(settings) {
-    var container = this;    
-    settings.current_pool_id!=""?settings.params={current_id:settings.current_pool_id}:settings.params=null;
-    load(settings, settings.params, this, container);     
-    return proxied.call(this, $.extend({}, settings, {
-            toggle: function() {}
-    }));
-  }
-    
-})(jQuery);
-
-var selectedNodes = [];
-var currentNode;
-
-function load(settings, params, child, container) {
-        $.getJSON(settings.url, params, function(response) { //{id: root}            
-		function createNode(parent) {                     
-                        if (this.type=="HardwarePool") {
-                            settings.link_to=settings.hardware_url 
-                            settings.span_class="folder";
-                            settings.current_class = settings.current + "_folder";
-                        } else if (this.type=="VmResourcePool") {
-                            settings.link_to=settings.resource_url;
-                            settings.span_class="file";
-                            settings.current_class = settings.current + "_file";
-                        } else if (this.type=="SmartPool") {
-                            settings.link_to=settings.smart_url;
-                            settings.span_class="file";
-                            settings.current_class = settings.current + "_file";
-                        } else {
-                            settings.link_to="";
-                            settings.span_class="file";
-                            settings.current_class = settings.current + "_file";
-                        }   
-			var span_onclick;
-			var current = $("<li/>").attr("id", this.id || "");
-			var link_open = "<a href=\"" + settings.link_to + "/" + this.id + "\">";
-			var link_close =  "</a>";
-			if (settings.action_type=="javascript"){
-			    span_onclick = " onClick=\"" + settings.onclick + "(" + this.id + ")\" ";
-   		        } else {
-			    span_onclick = ""
-		        }
-                        if (settings.current_pool_id==this.id) {
-                          current.html("<span class=\"" + settings.current_class + ">" + this.text  + "</span>")
-                            .appendTo(parent);
-                        } else {
-                          current.html("<span class=\"" + settings.span_class + "\"" + span_onclick + ">" + link_open + this.text + link_close + "</span>")
-                            .appendTo(parent);
-                        }
-			if (this.classes) {
-				current.children("span").addClass(this.classes);
-			}
-			if (this.expanded) {
-				current.addClass("open");
-			}                        
-			if (this.hasChildren || this.children && this.children.length) {
-				var branch = $("<ul/>").appendTo(current);
-				if (this.hasChildren) {
-					current.addClass("hasChildren");
-					//createNode.call({
-						//classes:"placeholder",
-                                        //        text:"&nbsp;",
-					//	children:[]
-					//}, branch);
-				}
-				if (this.children && this.children.length) {
-					$.each(this.children, createNode, [branch])
-				}
-			}
-		} 
-                $(container).find('li').remove();
-                $.each(response, createNode, [child]);
-                $(container).ovirt_treeview({add: child});
-                for (var i = 0; i < selectedNodes.length; i++){
-                  $('#test-tree li#' + selectedNodes[i] +' > div').click();
-                }
-                if (currentNode != null) {
-                    var nodeType = $('li#' + currentNode + ' > span').attr('class');
-                    $('li#' + currentNode + ' > span').attr('class', 'current_' + nodeType);
-                }               
-    });
-  }    
-
-$('#test-tree li.collapsable').livequery(
-    function(){
-        if($.inArray(this.id,selectedNodes) == -1){
-          selectedNodes.push(this.id);
-        }        
-    },function(){}
-); 
-$('#test-tree li.expandable').livequery(
-    function(){
-        if($.inArray(this.id,selectedNodes) != -1){
-          selectedNodes.splice(selectedNodes.indexOf(this.id),1);
-        }        
-    }, function(){}
-); 
\ No newline at end of file
diff --git a/src/public/javascripts/ovirt.js b/src/public/javascripts/ovirt.js
deleted file mode 100644
index 67dc455..0000000
--- a/src/public/javascripts/ovirt.js
+++ /dev/null
@@ -1,396 +0,0 @@
-// ovirt-specific javascript functions are defined here
-
-// helper functions for dialogs and action links
-
-
-// returns an array of selected values for flexigrid checkboxes
-function get_selected_checkboxes(formid)
-{
-  var selected_array = new Array();
-  var selected_index = 0;
-  var selected = $('#'+formid+' .grid_checkbox:checkbox:checked');
-  selected.each(function(){
-    selected_array.push(this.value);
-  })
-  return selected_array;
-}
-
-
-// make sure that at least one item is selected to continue
-function validate_selected(selected_array, name)
-{
-  if (selected_array.length == 0) {
-    $.jGrowl("Please select at least one " + name + "  to continue");
-    return false;
-  } else {
-    return true;
-  }
-}
-
-function getAverage(val) {
-    if (isNaN(val)) return 0;
-    //FIXME: currently using a magic number of 5 which should be replaced
-    //with comething more meaningful.
-    return (val/5 < 1) ? ((val/5) * 100) : 100;
-}
-
-function add_hosts(url)
-{
-    hosts= get_selected_checkboxes("addhosts_grid_form");
-    if (validate_selected(hosts, "host")) {
-      $.post(url,
-             { resource_ids: hosts.toString() },
-              function(data,status){
-                $(document).trigger('close.facebox');
-	        grid = $("#hosts_grid");
-                if (grid.size()>0 && grid != null) {
-                  grid.flexReload();
-                } else {
-		  $tabs.tabs("load",$tabs.data('selected.tabs'));
-                }
-		if (data.alert) {
-		  $.jGrowl(data.alert);
-                }
-               }, 'json');
-    }
-}
-function add_storage(url)
-{
-    storage= get_selected_checkboxes("addstorage_grid_form");
-    if (validate_selected(storage, "storage pool")) {
-      $.post(url,
-             { resource_ids: storage.toString() },
-              function(data,status){
-                if (data.success) {
-                  $(document).trigger('close.facebox');
-                  if ($("#storage_tree").size() > 0) {
-                    $('ul.ovirt-tree').trigger('STORAGE_VOLUME', [response.storage]);
-                  } else {
-                    $tabs.tabs("load",$tabs.data('selected.tabs'));
-                  }
-                }
-		if (data.alert) {
-		  $.jGrowl(data.alert);
-                }
-               }, 'json');
-    }
-}
-function add_hosts_to_smart_pool(url)
-{
-    hosts= get_selected_checkboxes("add_smart_hosts_grid_form");
-    if (validate_selected(hosts, "host")) {
-      $.post(url,
-             { resource_ids: hosts.toString() },
-              function(data,status){
-                $(document).trigger('close.facebox');
-	        grid = $("#smart_hosts_grid");
-                if (grid.size()>0 && grid != null) {
-                  grid.flexReload();
-                } else {
-		  $tabs.tabs("load",$tabs.data('selected.tabs'));
-                }
-		if (data.alert) {
-		  $.jGrowl(data.alert);
-                }
-               }, 'json');
-    }
-}
-function add_storage_to_smart_pool(url)
-{
-    storage= get_selected_checkboxes("add_smart_storage_grid_form");
-    if (validate_selected(storage, "storage pool")) {
-      $.post(url,
-             { resource_ids: storage.toString() },
-              function(data,status){
-                $(document).trigger('close.facebox');
-	        grid = $("#smart_storage_grid");
-                if (grid.size()>0 && grid != null) {
-                  grid.flexReload();
-                } else {
-		  $tabs.tabs("load",$tabs.data('selected.tabs'));
-                }
-		if (data.alert) {
-		  $.jGrowl(data.alert);
-                }
-               }, 'json');
-    }
-}
-function add_vms_to_current_smart_pool(url)
-{
-    vms= get_selected_checkboxes("add_smart_vms_grid_form");
-    if (validate_selected(vms, "vm")) {
-      $.post(url,
-             { resource_ids: vms.toString() },
-              function(data,status){
-                $(document).trigger('close.facebox');
-	        grid = $("#smart_vms_grid");
-                if (grid.size()>0 && grid != null) {
-                  grid.flexReload();
-                } else {
-		  $tabs.tabs("load",$tabs.data('selected.tabs'));
-                }
-		if (data.alert) {
-		  $.jGrowl(data.alert);
-                }
-               }, 'json');
-    }
-}
-// deal with ajax form response, filling in validation messages where required.
-function ajax_validation(response, status)
-{
-  $(".fieldWithErrors").removeClass("fieldWithErrors");
-  $("div.errorExplanation").remove();
-  if (!response.success && response.errors ) {
-    for(i=0; i<response.errors.length; i++) {
-      var element = $("div.form_field:has(#"+response.object + "_" + response.errors[i][0]+")");
-      if (element) {
-        element.addClass("fieldWithErrors");
-        for(j=0; j<response.errors[i][1].length; j++) {
-          element.append('<div class="errorExplanation">'+response.errors[i][1][j]+'</div>');
-        }
-      }
-    }
-  }
-  if (response.alert) {
-    $.jGrowl(response.alert);
-  }
-}
-
-// callback actions for dialog submissions
-function afterHwPool(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      // this is for reloading the host/storage grid when
-      // adding hosts/storage to a new HW pool
-      if (response.resource_type) {
-        grid = $('#' + response.resource_type + '_grid');
-        if (grid.size()>0 && grid != null) {
-          grid.flexReload();
-        } else {
-          $tabs.tabs("load",$tabs.data('selected.tabs'));
-        }
-      }
-
-      //FIXME: point all these refs at a widget so we dont need the functions in here
-      processTree();
-
-      if ((response.resource_type == 'hosts' ? get_selected_hosts() : get_selected_storage()).indexOf($('#'+response.resource_type+'_selection_id').html()) != -1){
-	  empty_summary(response.resource_type +'_selection', (response.resource_type == 'hosts' ? 'Host' : 'Storage Pool'));
-      }
-      // do we have HW pools grid?
-      //$("#vmpools_grid").flexReload()
-    }
-}
-function afterVmPool(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      grid = $("#vmpools_grid");
-      if (grid.size()>0 && grid != null) {
-        grid.flexReload();
-      } else {
-        $tabs.tabs("load",$tabs.data('selected.tabs'));
-      }
-      processTree();
-    }
-}
-function afterSmartPool(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      processTree();
-    }
-}
-function afterStoragePool(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      if ($("#storage_tree").size() > 0) {
-        $('ul.ovirt-tree').trigger('STORAGE_VOLUME', [response.new_pool]);
-      } else {
-        $tabs.tabs("load",$tabs.data('selected.tabs'));
-      }
-    }
-}
-function afterPermission(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      grid = $("#users_grid");
-      if (grid.size()>0 && grid!= null) {
-        grid.flexReload();
-      } else {
-        $tabs.tabs("load",$tabs.data('selected.tabs'));
-      }
-    }
-}
-function afterVm(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      grid = $("#vms_grid");
-      if (grid.size()>0 && grid != null) {
-        grid.flexReload();
-      } else {
-        $tabs.tabs("load",$tabs.data('selected.tabs'));
-      }
-    }
-}
-
-//selection detail refresh
-function refresh_summary(element_id, url, obj_id){
-  $('#'+element_id+'').load(url, { id: obj_id})
-}
-function refresh_summary_static(element_id, content){
-    $('#'+element_id+'').html(content)
-}
-function empty_summary(element_id, label){
-    refresh_summary_static(element_id, '<div class="selection_left"> \
-    <div>Select a '+label+' above.</div> \
-  </div>')
-}
-
-
-function get_selected_storage()
-{
-    return get_selected_checkboxes("storage_tree_form");
-}
-function validate_storage_for_move()
-{
-    if (validate_selected(get_selected_storage(), 'storage pool')) {
-        $('#move_link_hidden').click();
-    }
-}
-function validate_storage_for_remove()
-{
-    if (validate_selected(get_selected_storage(), 'storage pool')) {
-        $('#remove_link_hidden').click();
-    }
-}
-function delete_or_remove_storage()
-{
-    var selected = $('#remove_storage_selection :radio:checked');
-    if (selected[0].value == "remove") {
-        remove_storage();
-    } else if (selected[0].value == "delete") {
-        delete_storage();
-    }
-    $(document).trigger('close.facebox');
-}
-function delete_pool(delete_url, id)
-{
-  $(document).trigger('close.facebox');
-
-  if (delete_url==='') {
-    $.jGrowl("Invalid Pool Type");
-    return;
-  }
-  $.post(delete_url,
-         {id: id},
-          function(data,status){
-            //no more flex reload?
-            processTree();
-            if (data.alert) {
-              $.jGrowl(data.alert);
-            }
-           }, 'json');
-}
-
-
-function get_selected_networks()
-{
-    return get_selected_checkboxes("networks_grid_form");
-}
-
-function afterNetwork(response, status){
-    ajax_validation(response, status);
-    if (response.success) {
-      $(document).trigger('close.facebox');
-      grid = $("#networks_grid");
-      if (grid.size()>0 && grid != null) {
-        grid.flexReload();
-      } else {
-        $tabs.tabs("load",$tabs.data('selected.tabs'));
-      }
-    }
-}
-
-function handleTabsAndContent(data) {
-  $('#side-toolbar').html($(data).find('div.toolbar'));
-  $('#tabs-and-content-container').html($(data).not('div#side-toolbar'));
-}
-
-var VmCreator = {
-  checkedBoxesFromTree : [],
-  buildCheckboxList: function(id) {
-      var rawList = $('#'+ id + ' :checkbox:checked').parent('div');
-      if (rawList.length >0) {
-          rawList.each(function(i) {
-            VmCreator.checkedBoxesFromTree.push(rawList.get(i).id);
-          });
-      } else {
-          VmCreator.checkedBoxesFromTree.splice(0);
-      }
-  },
-  clickCheckboxes: function() {
-      $.each(VmCreator.checkedBoxesFromTree, function(n, curBox){
-          $('#' + curBox).children(':checkbox').click();
-      });
-      VmCreator.checkedBoxesFromTree = [];
-  },
-  recreateTree: function(o){
-      $('#storage_volumes_tree').tree({
-        content: o.content,
-        template: "storage_volumes_template",
-        selectedNodes: o.selectedNodes,
-        clickHandler: VmCreator.goToCreateStorageHandler,
-        channel: 'STORAGE_VOLUME',
-        refresh: VmCreator.returnToVmForm
-      });
-  },
-  goToCreateStorageHandler: function goToCreateStorageHandler(e,elem){
-    if ($(e.target).is('img') && $(e.target).parent().is('div')){
-        //remove the temp form in case there is one hanging around for some reason
-        $('temp_create_vm_form').remove();
-        VmCreator.buildCheckboxList(elem.element.get(0).id);
-        var storedOptions = $('#storage_volumes_tree').data('tree').options;
-        // copy/rename form
-        $('#window').clone(true).attr({style: 'display:none', id: 'temp_window'}).appendTo('body');
-        $('#temp_window #vm_form').attr({id: 'temp_create_vm_form'});
-        // continue standard calls to go to next step (create storage)
-        $('#window').fadeOut('fast');
-        $("#window").empty().load($(e.target).siblings('a').attr('href'));
-        $('#window').fadeIn('fast');
-        // empty tree
-        $('#temp_create_vm_form #storage_volumes_tree').empty();
-        // reinitialize tree so it has data and is subscribed
-        VmCreator.recreateTree(storedOptions);
-    }
-  },
-  returnToVmForm: function returnToVmForm(e,elem) {
-      //The item has now been added to the tree, now copy it into a facebox
-      var storedOptions = $('#storage_volumes_tree').data('tree').options;
-      $('#window').fadeOut('fast');
-      $('#window').remove();
-      $('#temp_window').clone(true).attr({style: 'display:block', id: 'window'})
-        .appendTo('td.body > div.content').end().remove();
-      $('#window #temp_create_vm_form').attr({id: 'vm_form'});
-      $('#window').fadeIn('fast');
-      VmCreator.recreateTree(storedOptions);
-      VmCreator.clickCheckboxes();
-  }
-}
-
-function get_server_from_url()
-{
-   var regexS = "https.*"
-   var regex  = new RegExp(regexS);
-   var results = regex.exec( window.location.href );
-   var start = 8;
-   if(results == null){
-     start = 7;
-   }
-   var end = window.location.href.indexOf('/', 8) - start;
-   return window.location.href.substr(start, end);
-}
diff --git a/src/public/javascripts/ovirt.tree.js b/src/public/javascripts/ovirt.tree.js
deleted file mode 100644
index ff58c5d..0000000
--- a/src/public/javascripts/ovirt.tree.js
+++ /dev/null
@@ -1,221 +0,0 @@
-function processTree (){
-  $("#nav_tree_form").ajaxSubmit({
-    url: tree_url,
-    type: "POST",
-    dataType: "json",
-    success: function(response){
-      // First, remove any deleted items from the tree
-      $.each(response.deleted, function(name, value){
-          //FIXME: special case for other peoples smart pools
-          //come up with better way or split out somewhere.
-
-          //check if the li is the only one.  If so, remove its container as well
-          if ($('#' + value.id).parent("li").siblings().size() === 0 ) {
-            if($('#' + value.id).is(':visible')) {
-              $('#' + value.id).parent("li").parent("ul").siblings("div").click();
-            }
-            $('#' + value.id).parent("li").parent("ul").remove();
-          } else {
-            if($('#' + value.id).is(':visible')) {
-                $('#' + value.id).parent()
-                .siblings('li:first')
-                .children('div')
-                .click();
-              }
-          }
-          $('#' + value.id).parent().remove();
-      });
-
-      if(processRecursive) {
-        $("#nav_tree").html(recursiveTreeTempl.process({"pools" : response.pools}));
-        processRecursive = false;
-      } else {
-          // Loop through the items and decide if we need updated/new html for each item.
-          processChildren(response.pools, treeItemTempl);
-      }
-    }
-  });
-}
-
-function processChildren(list, templateObj){
-/*  TODO: In future, we may need an additional state here of 'moved' which deletes
- *  the item where it was in the tree and adds it to its new parent.
-*/
-  $.each(list, function(n,data){
-    var updatedNode;
-    if(data.state === 'changed'){
-      $('input[value^=' + data.id + '-]').attr('value', data.id + '-' + data.name);
-      $('#' + data.id).html(data.name);
-    } else if(data.state === 'new') {
-        /* If the elem with id matching the parent id has a sibling that is a ul,
-         * we should append the result of processing the template to the existing
-         * sublist.  Otherwise, we need to add a new sublist and add it there.
-        */
-       var result  = templateObj.process(data);
-       if ($('#' + data.parent_id).siblings('ul').size() > 0) {
-         $('#' + data.parent_id).siblings('ul').append(result);
-       } else {
-         $('#' + data.parent_id).parent().append('<ul>' + result + '</ul>');
-         $('#' + data.parent_id).siblings('span').addClass('expanded');
-       }
-    }
-    if (data.children) {
-      processChildren(data.children, templateObj);
-    }
-  });
-}
-
-(function($){
-	// widget prototype. Everything here is public
-	var Tree  = {
-                getTemplate: function () { return this.getData('template'); },
-		setTemplate: function (x) {
-                    this.setData('template', TrimPath.parseDOMTemplate(this.getData('template')));
-		},
-		init: function() {
-                    var self = this, o = this.options;
-                    this.setTemplate(this.getTemplate());
-                    this.populate();
-                    this.element
-                    .bind('click', function(event){
-                        self.clickHandler(event, self);
-                        if(self.getData('toggle') === 'toggle') {
-                          self.toggle(event, this);
-                        } else {
-                          self.element.triggerHandler('toggle',[event,this],self.getData('toggle'));
-                        }
-                    });
-                    o.selectedNodes !== undefined? this.openToSelected() :o.selectedNodes=[];
-                    o.channel !== undefined? this.subscribe(o.channel): o.channel = '';
-                    if (o.cacheContent === true) this.buildLookup();
-                },
-                populate: function() {
-                    var contentWithId = this.getData('content');
-                    contentWithId.id = this.element.get(0).id;
-                    this.element.html(this.getTemplate().process(contentWithId));
-                },
-                buildLookup: function() {
-                    this.setData('lookupList', this.walkTree(this.getData('content').pools, [], this));
-                },
-                walkTree: function(list, lookup, self) {
-                    $.each(list, function(n,obj){
-                        lookup.push(obj);
-                        if (obj.children && obj.children.length > 0) self.walkTree(obj.children, lookup, self);
-                    });
-                    return lookup;
-                },
-                subscribe: function subscribe(channel) {
-                    var self = this;
-                    this.element.bind(channel, function(e,data){self.refresh(e,data);});
-                },
-                toggle: function(e, elem) {
-                    if ($(e.target).is('span.hitarea')){
-                      $(e.target)
-                      .toggleClass('expanded')
-                      .toggleClass('expandable')
-                      .siblings('ul').slideToggle("normal");
-                      if ($(e.target).hasClass('expanded')) {
-                        this.setSelectedNode(this.chop(e.target), true);
-                      } else {
-                          this.setSelectedNode(this.chop(e.target), false);
-                      }
-                    }
-                },
-                chop: function(elem) {
-                    var id = $(elem).siblings('div').get(0).id;
-                    return id.substring(id.indexOf('-') +1);
-                },
-                clickHandler: function(e,elem) { //TODO: make this a default impl if needed.
-                    this.options.clickHandler !== undefined? this.element.triggerHandler('clickHandler',[e,this],this.getData('clickHandler')): null;
-                    if ($(e.target).is('div') && $(e.target).parent().is('li')){}
-                },
-                setSelectedNode: function(id, isOpen) {
-                    if (isOpen) {
-                        if($.inArray(id,this.getData('selectedNodes')) == -1){
-                          this.setData(this.getData('selectedNodes').push(id));
-                        }
-                    } else {
-                        if($.inArray(id,this.getData('selectedNodes')) != -1){
-                          this.setData(this.getData('selectedNodes').splice(this.getData('selectedNodes').indexOf(id),1));
-                        }
-                    }
-                },
-                openToSelected: function() {
-                    for (var i = 0; i < this.getData('selectedNodes').length; i++){
-                      this.toggle($.event.fix({type: 'toggle',
-                                              target: this.element.find('#' +this.element.get(0).id + '-' + this.getData('selectedNodes')[i]).siblings('span').get(0)})
-                                  , this);
-                    }
-                },
-                refresh: function(e, list) {
-                    //NOTE: The widget expects the convention used elsewhere of {blah}-{ui_object}
-                    //(where {blah} is the id of the container element, see above for an example soon),
-                    //since there may be 2 items with the same db id.
-                    var self = this;
-                    list = $.makeArray(list);
-                    $.each(list, function(n,data){
-                      switch(data.state) {
-                          case 'deleted': {
-                            self._delete(data);
-                            break;
-                          }
-                          case 'changed': {
-                            self._update(data);
-                            break;
-                          }
-                          default: {
-                            self._add(data);
-                            break;
-                          }
-                      }
-                    });
-                    self.options.refresh !== undefined? self.element.triggerHandler('refresh',[e,list],self.getData('refresh')): null;
-                },
-                //methods meant to be called internally by widget
-                _add: function(data){
-                  var myLookupList = this.getData('lookupList');
-                    if (data.ui_parent !==null) {
-                      var matchedItems = $.grep(myLookupList,function(value) {return value.ui_object == data.ui_parent;});
-                      var self = this;
-                      $.each(matchedItems, function(n,obj){
-                        var existingObj = [];
-                        if(obj.children && obj.children.length >0) {
-                          existingObj = $.grep(obj.children,function(value) {return value.ui_object == data.ui_object;});
-                        }
-                        if (existingObj.length === 0){
-                            obj.children.push(data);
-                            myLookupList.push(data);
-                            self._addDomElem(data);
-                        } else {}
-                      });
-                    } else {myLookupList.push(data);}
-                },
-                _delete: function(data){}, //TODO: implement
-                _update: function(data) {}, //TODO: implement
-                _addDomElem: function(data) {
-                  var dataToInsert = this.getTemplate().process({"pools":[data], "id":this.element.get(0).id});
-                  if (data.ui_parent) {
-                    var searchString = '#' + this.element.get(0).id + '-' + data.ui_parent;
-                    var parentElem = this.element.find(searchString).siblings('ul');
-                    if (parentElem.size() === 0) {
-                        this.element.find(searchString).parent().append('<ul>' + dataToInsert + '</ul>');
-                        this.element.find(searchString).siblings('span').addClass('expanded');
-                    } else {
-                      parentElem.append(dataToInsert);
-                    }
-                  } else {
-                      this.element.append(dataToInsert);
-                  }
-                },
-                _deleteDomElem: function(data) {}, //TODO: implement
-                _updateDomElem: function(data) {} //TODO: implement
-	};
-	$.yi = $.yi || {}; // create the namespace
-	$.widget("yi.tree", Tree);
-	$.yi.tree.defaults = {
-            template: 'tree_template',
-            toggle: 'toggle',
-            clickHandler: 'clickHandler',
-            cacheContent: true
-	};
-})(jQuery);
\ No newline at end of file
diff --git a/src/public/stylesheets/flexigrid/flexigrid.css b/src/public/stylesheets/flexigrid/flexigrid.css
deleted file mode 100644
index cd1902f..0000000
--- a/src/public/stylesheets/flexigrid/flexigrid.css
+++ /dev/null
@@ -1,732 +0,0 @@
-@charset "UTF-8";
-/* CSS Document */
-
-.flexigrid
-	{
-	/*font-family: Arial, Helvetica, sans-serif;
-	font-size: 11px;*/
-	position: relative;
-	border: 0px solid #eee;
-	overflow: hidden;
-	color: #000;
-	}
-
-	.flexigrid.hideBody
-		{
-		height: 26px !important;
-		border-bottom: 1px solid #ccc;
-		}
-
-	.ie6fullwidthbug
-		{
-		border-right: 0px solid #ccc;
-		padding-right: 2px;	
-		}
-
-.flexigrid div.nDiv
-	{
-	background: #eee url(images/line.gif) repeat-y -1px top;
-	border: 1px solid #ccc;
-	border-top: 0px;
-	overflow: auto;
-	left: 0px;
-	position: absolute;
-	z-index: 999;
-	float: left;
-	}
-
-	.flexigrid div.nDiv table
-		{
-		margin: 2px;
-		}
-
-.flexigrid div.hDivBox
-	{
-	float: left; 
-	padding-right: 40px;
-	}
-
-.flexigrid div.bDiv table
-	{
-	/*margin-bottom: 10px;*/
-	}
-	
-	.flexigrid div.bDiv table.autoht
-		{
-		border-bottom: 0px;
-		margin-bottom: 0px;
-		}
-	
-.flexigrid div.nDiv td
-	{
-	padding: 2px 3px;
-	border: 1px solid #eee;
-	cursor: default;
-	}
-
-.flexigrid div.nDiv tr:hover td, .flexigrid div.nDiv tr.ndcolover td
-	{
-	background: #d5effc url(images/hl.png) repeat-x top;
-	border: 1px solid #a8d8eb;
-	}
-	
-	.flexigrid div.nDiv td.ndcol1
-		{
-		border-right: 1px solid #ccc;
-		}
-		
-	.flexigrid div.nDiv td.ndcol2
-		{
-		border-left: 1px solid #fff;
-		padding-right: 10px;
-		}
-
-	.flexigrid div.nDiv tr:hover td.ndcol1, .flexigrid div.nDiv tr.ndcolover td.ndcol1
-		{
-		border-right: 1px solid #d2e3ec;
-		}
-		
-	.flexigrid div.nDiv tr:hover td.ndcol2, .flexigrid div.nDiv tr.ndcolover td.ndcol2
-		{
-		border-left: 1px solid #eef8ff;
-		}
-	
-	.flexigrid div.nBtn
-		{
-		position: absolute;
-		height: 24px;
-		width: 14px;
-		z-index: 900;
-		background: #fafafa url(images/fhbg.gif) repeat-x bottom;
-		border: 0px solid #ccc;
-		border-left: 1px solid #ccc;
-		top: 0px;
-		left: 0px;
-		margin-top: 1px;
-		cursor: pointer;
-		display: none;
-		}
-		
-		.flexigrid div.nBtn div
-			{
-			height: 24px;
-			width: 12px;
-			border-left: 1px solid #fff;
-			float: left;
-			background: url(images/ddn.png) no-repeat center;
-			}		
-		
-		.flexigrid div.nBtn.srtd
-			{
-			background: url(images/wbg.gif) repeat-x 0px -1px;
-			}
-		
-
-.flexigrid div.mDiv
-	{
-	background: url(images/wbg.gif) repeat-x top;
-	border: 1px solid #ccc;
-	border-bottom: 0px;
-	border-top: 0px;
-	font-weight: bold;
-	display: block;
-	overflow: hidden;
-	white-space: nowrap;
-	position: relative;
-	}
-
-.flexigrid div.mDiv div
-	{
-	padding: 6px;
-	white-space: nowrap;
-	}
-	
-		.flexigrid div.mDiv div.ptogtitle
-			{
-			position: absolute;
-			top: 4px;
-			right: 3px;
-			padding: 0px;
-			height: 16px;
-			width: 16px;
-			overflow: hidden;
-			border: 1px solid #ccc;
-			cursor: pointer;
-			}
-
-			.flexigrid div.mDiv div.ptogtitle:hover
-			{
-			background-position: left -2px;
-			border-color: #bbb;
-			}
-			
-			.flexigrid div.mDiv div.ptogtitle span
-			{
-			display: block;
-			border-left: 1px solid #eee;
-			border-top: 1px solid #fff;
-			border-bottom: 1px solid #ddd;
-			width: 14px;
-			height: 14px;
-			background: url(images/uup.png) no-repeat center;
-			}
-			
-			.flexigrid div.mDiv div.ptogtitle.vsble span
-			{
-			background: url(images/ddn.png) no-repeat center;			
-			}			
-
-.flexigrid div.tDiv /*toolbar*/
-	{
-	background: #fafafa url(images/bg_tdiv.jpg) repeat-x top;
-	color:#FFFFFF;
-	position: relative;			
-	border-top: 1px solid #B1D0E5;
-	border-bottom: 0px;
-	overflow: hidden;
-	}
-
-	.flexigrid div.tDiv2
-		{
-		float: left;
-		clear: both;
-		padding: 1px;
-		}
-
-.flexigrid div.sDiv /*toolbar*/
-	{
-	background: #fafafa url(images/bg.gif) repeat-x top;
-	position: relative;
-	border: 1px solid #ccc;
-	border-top: 0px;
-	overflow: hidden;
-	display: none;
-	}
-
-	.flexigrid div.sDiv2
-		{
-		float: left;
-		clear: both;
-		padding: 5px;
-		padding-left: 5px;
-		width: 1024px;
-		}
-
-		.flexigrid div.sDiv2 input, .flexigrid div.sDiv2 select
-		{
-		vertical-align: middle;
-		}
-			
-	.flexigrid div.btnseparator
-		{
-		float: left;
-		height: 22px;
-		border-left: 1px solid #63879B;
-		border-right: 1px solid #76A2B6;
-		margin: 1px;
-		}
-	
-	.flexigrid div.fbutton
-		{
-			float: left;
-			display: block;
-			cursor: pointer;
-			padding: 1px 5px 1px 1px;
-		}
-
-	.flexigrid div.fbutton div
-		{
-			float: left;
-			padding: 1px 5px 3px 5px;
-		}		
-		
-	.flexigrid div.fbutton span
-		{
-		float: left;
-		display: block;
-		padding: 3px 3px 3px 33px;
-		}
-
-	.flexigrid div.fbutton:hover, .flexigrid div.fbutton.fbOver
-		{
-			/*padding: 0px 2px 0 0;
-			border: 1px solid #537284;*/
-			background:#76A2B6;
-		}
-
-	.flexigrid div.fbutton:hover div, .flexigrid div.fbutton.fbOver div
-		{
-			/*padding: 0px 3px 2px 6px;
-			border-left: 1px solid #8EABBC;
-			border-top: 1px solid #8EABBC;
-			border-right: 1px solid #63879B;
-			border-bottom: 1px solid #63879B;*/
-			
-		}		
-		
-	
-/* end toolbar*/
-
-.flexigrid div.hDiv
-	{
-	background: #fafafa url(images/fhbg.gif) repeat-x bottom;
-	position: relative;
-	border-top: 1px solid #ccc;
-	border-bottom: 0px;
-	overflow: hidden;
-	}	
-
-.flexigrid div.hDiv table
-	{
-	border-right: 1px solid #fff;
-	}
-
-	.flexigrid div.cDrag
-		{
-		float: left;
-		position: absolute;
-		z-index: 2;
-		overflow: visible;
-		}
-
-		.flexigrid div.cDrag div
-			{
-			float: left;
-			background: none;
-			display: block;
-			position: absolute;
-			height: 24px;
-			width: 5px;
-			cursor: col-resize;
-			}
-			
-		.flexigrid div.cDrag div:hover, .flexigrid div.cDrag div.dragging
-			{
-			background: url(images/line.gif) repeat-y 2px center;
-			}
-
-.flexigrid div.iDiv
-	{
-		border: 1px solid #316ac5;
-		position: absolute;
-		overflow: visible;
-		background: none;
-	}
-	
-	.flexigrid div.iDiv input, .flexigrid div.iDiv select, .flexigrid div.iDiv textarea
-		{
-		/*font-family: Arial, Helvetica, sans-serif;
-		font-size: 11px;*/
-		}
-		
-	.flexigrid div.iDiv input.tb
-		{
-		border: 0px;
-		padding: 0px;
-		width: 100%;
-		height: 100%;
-		padding: 0px;
-		background: none;
-		}			
-					
-.flexigrid div.bDiv
-	{
-	border-bottom: #CCCCCC solid 0px;
-	background: #fff;
-	overflow: auto;
-	position: relative;
-	}
-	
-.flexigrid div.bDiv table
-	{
-	border-bottom: 0px solid #ccc;
-	}
-	
-	.flexigrid div.hGrip
-	{
-	position: absolute;
-	top: 0px;
-	right: 0px;
-	height: 5px;
-	width: 5px;
-	background: url(images/line.gif) repeat-x center;
-	margin-right: 1px;
-	cursor: col-resize;
-	}
-	
-		.flexigrid div.hGrip:hover, .flexigrid div.hGrip.hgOver
-			{
-				border-right: 1px solid #999;				
-				margin-right: 0px;
-			}
-	
-	.flexigrid div.vGrip
-		{
-		height: 5px;
-		overflow: hidden;
-		position: relative;
-		background: #fafafa url(images/wbg.gif) repeat-x 0px -1px;
-		border: 1px solid #ccc;
-		border-top: 0px;
-		text-align: center;
-		cursor: row-resize;
-		}
-			
-			.flexigrid div.vGrip span
-					{
-					display: block;
-					margin: 1px auto;
-					width: 20px;
-					height: 1px;
-					overflow: hidden;
-					border-top: 1px solid #aaa;
-					border-bottom: 1px solid #aaa;	
-					background: none;
-					}
-
-.flexigrid div.hDiv th, .flexigrid  div.bDiv td  /* common cell properties*/
-	{
-	text-align: left;
-	border-right: 1px solid #ddd;
-	border-left: 1px solid #fff;
-	overflow: hidden;
-	}
-
-		.flexigrid div.hDiv th div, .flexigrid  div.bDiv td  div, div.colCopy div/* common inner cell properties*/
-			{
-			padding: 5px;
-			line-height: 1.4;
-			border-left: 0px solid #fff;
-			}
-
-.flexigrid div.hDiv th, div.colCopy
-	{
-	font-weight: normal;
-	height: 24px;
-	cursor: default;
-	white-space: nowrap;
-	overflow: hidden;
-	}	
-
-div.colCopy {
-	/*font-family: Arial, Helvetica, sans-serif;
-	font-size: 11px;*/
-	background: #fafafa url(images/fhbg.gif) repeat-x bottom;
-	border: 1px solid #ccc;
-	border-bottom: 1px;
-	overflow: hidden;
-	}
-
-.flexigrid div.hDiv th.sorted
-	{
-	background: url(images/wbg.gif) repeat-x 0px -1px;
-	border-bottom: 0px solid #ccc;
-	}
-	
-	.flexigrid div.hDiv th.thOver
-	{
-	}
-
-	.flexigrid div.hDiv th.thOver div, .flexigrid div.hDiv th.sorted.thOver div
-	{
-	border-bottom: 1px solid orange;
-	padding-bottom: 4px;
-	}
-	
-	.flexigrid div.hDiv th.sorted div
-	{
-	border-bottom: 0px solid #ccc;
-	padding-bottom: 5px;
-	}
-
-	.flexigrid div.hDiv th.thMove
-	{
-	background: #fff;
-	color: #fff;
-	}
-	
-	.flexigrid div.hDiv th.sorted.thMove div
-		{
-		border-bottom: 1px solid #fff;
-		padding-bottom: 4px
-		}
-	
-	.flexigrid div.hDiv th.thMove div
-	{
-		background: #fff !important;
-	}	
-	
-	.flexigrid div.hDiv th div.sdesc
-		{
-		background: url(images/dn.png) no-repeat center top;
-		}	
-
-	.flexigrid div.hDiv th div.sasc
-		{
-		background: url(images/up.png) no-repeat center top;
-		}	
-		
-.flexigrid div.bDiv td
-	{
-	border-bottom: 1px solid #fff;
-	/*vertical-align: top;*/
-	white-space: nowrap;
-	}
-
-		.flexigrid div.hDiv th div
-			{
-			}
-			
-			.flexigrid span.cdropleft
-			{
-			display: block;
-			background: url(images/prev.gif) no-repeat -4px center;
-			width: 24px;
-			height: 24px;
-			position: relative;
-			top: -24px;
-			margin-bottom: -24px;
-			z-index: 3;
-			}
-
-			.flexigrid div.hDiv span.cdropright
-			{
-			display: block;
-			background: url(images/next.gif) no-repeat 12px center;
-			width: 24px;
-			height: 24px;
-			float: right;
-			position: relative;
-			top: -24px;
-			margin-bottom: -24px;
-			}
-
-
-		.flexigrid div.bDiv td div
-			{
-			border-top: 0px solid #fff;
-			padding-bottom: 4px;
-			}
-	
-				
-		.flexigrid tr td.sorted
-				{
-				background: #f3f3f3;
-				border-right: 1px solid #ddd;
-				border-bottom: 1px solid #f3f3f3;
-				}		
-
-				.flexigrid tr td.sorted div
-					{
-					}
-
-
-		.flexigrid tr.erow td
-				{
-				background: #f7f7f7;
-				border-bottom: 1px solid #f7f7f7;
-				}
-				
-		.flexigrid tr.erow td.sorted
-				{
-				background: #e3e3e3;
-				border-bottom: 1px solid #e3e3e3;
-				}						
-
-				.flexigrid tr.erow td.sorted div
-					{
-					}
-
-		.flexigrid div.bDiv tr:hover td, 
-		.flexigrid div.bDiv tr:hover td.sorted,
-		.flexigrid div.bDiv tr.trOver td.sorted, 
-		.flexigrid div.bDiv tr.trOver td
-			{
-			background: #d9ebf5;
-			border-left: 1px solid #eef8ff;
-			border-bottom: 1px dotted #a8d8eb;
-			}
-					
-		.flexigrid div.bDiv tr.trSelected:hover td, 
-		.flexigrid div.bDiv tr.trSelected:hover td.sorted,
-		.flexigrid div.bDiv tr.trOver.trSelected td.sorted, 
-		.flexigrid div.bDiv tr.trOver.trSelected td,
-		.flexigrid tr.trSelected td.sorted, 
-		.flexigrid tr.trSelected td
-			{
-			background: #d5effc url(images/hl.png) repeat-x top;
-			border-right: 1px solid #d2e3ec;
-			border-left: 1px solid #eef8ff;
-			border-bottom: 1px solid #a8d8eb;
-			}
-			
-		.flexigrid tr.trSelected td.sorted a, 
-		.flexigrid tr.trSelected td a
-			{
-			color: #eee;
-			}			
-
-	/* novstripe adjustments */
-
-	.flexigrid.novstripe .bDiv table
-	{
-		border-bottom: 0px solid #ccc;
-		border-right: 0px solid #ccc;
-	}
-
-	.flexigrid.novstripe  div.bDiv td  
-		{
-		border-right-color: #fff;
-		}
-		
-	.flexigrid.novstripe div.bDiv tr.erow td.sorted
-		{
-		border-right-color: #e3e3e3;
-		}
-
-	.flexigrid.novstripe div.bDiv tr td.sorted
-		{
-		border-right-color: #f3f3f3;
-		}
-
-	.flexigrid.novstripe  div.bDiv tr.erow td  
-		{
-		border-right-color: #f7f7f7;
-		border-left-color: #f7f7f7;
-		}
-		
-		.flexigrid.novstripe div.bDiv tr.trSelected:hover td, 
-		.flexigrid.novstripe div.bDiv tr.trSelected:hover td.sorted,
-		.flexigrid.novstripe div.bDiv tr.trOver.trSelected td.sorted, 
-		.flexigrid.novstripe div.bDiv tr.trOver.trSelected td,
-		.flexigrid.novstripe tr.trSelected td.sorted, 
-		.flexigrid.novstripe tr.trSelected td
-			{
-			border-right: 1px solid #0066FF;
-			border-left: 1px solid #0066FF;
-			}		
-
-	.flexigrid.novstripe div.bDiv tr.trOver td, .flexigrid.novstripe div.bDiv tr:hover td
-		{
-		border-left-color: #d9ebf5;
-		border-right-color: #d9ebf5;
-		}
-
-	/* end novstripe */
-
-.flexigrid div.pDiv
-	{
-	background: url(images/wbg.gif) repeat-x 0 -1px;
-	border: 1px solid #ccc;
-	border-top: 0px;
-	overflow: hidden;
-	white-space: nowrap;
-	}
-
-.flexigrid div.pDiv div.pDiv2
-	{
-	margin: 3px;
-	margin-left: -2px;
-	float: left;
-	width: 1024px;
-	}	
-	
-	div.pGroup
-		{
-		float: left;
-		background: none;
-		height: 24px;
-		margin: 0px 5px;
-		}
-	
-	.flexigrid div.pDiv .pPageStat, .flexigrid div.pDiv .pcontrol
-		{
-		position: relative;
-		top: 5px;
-		overflow: visible;
-		}
-		
-	.flexigrid div.pDiv input
-		{
-		vertical-align: text-top;
-		position: relative;
-		top: -5px;
-		}
-	
-	.flexigrid div.pDiv  div.pButton
-		{
-		float: left;
-		width: 22px;
-		height: 22px;
-		border: 0px;
-		cursor: pointer;
-		overflow: hidden;
-		}
-
-		.flexigrid div.pDiv  div.pButton:hover, .flexigrid div.pDiv  div.pButton.pBtnOver
-			{
-			width: 20px;
-			height: 20px;
-			border: 1px solid #ccc;
-			cursor: pointer;
-			}
-		
-	.flexigrid div.pDiv  div.pButton span
-		{
-		width: 20px;
-		height: 20px;
-		display: block;
-		float: left;
-		}		
-	
-		.flexigrid div.pDiv  div.pButton:hover span, .flexigrid div.pDiv  div.pButton.pBtnOver span
-			{
-			width: 19px;
-			height: 19px;
-			border-top: 1px solid #fff;
-			border-left: 1px solid #fff;
-			}		
-		
-
-		.flexigrid .pSearch
-			{
-			background: url(images/magnifier.png) no-repeat center;
-			}
-	
-		.flexigrid .pFirst
-			{
-			background: url(images/first.gif) no-repeat center;
-			}
-			
-		.flexigrid .pPrev
-			{
-			background: url(images/prev.gif) no-repeat center;
-			}
-
-		.flexigrid .pNext
-			{
-			background: url(images/next.gif) no-repeat center;
-			}
-
-		.flexigrid .pLast
-			{
-			background: url(images/last.gif) no-repeat center;
-			}
-			
-		.flexigrid .pReload
-			{
-			background: url(images/load.png) no-repeat center;
-			}
-			
-		.flexigrid .pReload.loading
-			{
-			background: url(images/load.gif) no-repeat center;
-			}															
-
-/* ie adjustments */
-			
-		.flexigrid.ie div.hDiv th div, .flexigrid.ie  div.bDiv td  div, div.colCopy.ie div/* common inner cell properties*/
-			{
-			overflow: hidden;
-			}			
-		
\ No newline at end of file
diff --git a/src/public/stylesheets/flexigrid/images/add2.png b/src/public/stylesheets/flexigrid/images/add2.png
deleted file mode 100644
index cd925e396e97fed605d5f1ef595709797ebbd879..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/bg.gif b/src/public/stylesheets/flexigrid/images/bg.gif
deleted file mode 100644
index 9ab78a2ec788d6dfbbcd6212a4d3b1d9917d55e7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/bg_tdiv.gif b/src/public/stylesheets/flexigrid/images/bg_tdiv.gif
deleted file mode 100644
index ae2f6f8251dbcafa4129f466590045a884c64e22..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/bg_tdiv.jpg b/src/public/stylesheets/flexigrid/images/bg_tdiv.jpg
deleted file mode 100644
index b68450746e4f9ec4956c1dd6fe9e7ef7a4b9cc89..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/btn-sprite.gif b/src/public/stylesheets/flexigrid/images/btn-sprite.gif
deleted file mode 100644
index e827ba35728adaadfea417b20b4727a859ae770a..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/close.png b/src/public/stylesheets/flexigrid/images/close.png
deleted file mode 100644
index d7173ba6ba7622549815a6d217cd697b0d5386ad..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/ddn.png b/src/public/stylesheets/flexigrid/images/ddn.png
deleted file mode 100644
index 2178f11e327167c25acfb35264b03dd87b9486b4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/dn.png b/src/public/stylesheets/flexigrid/images/dn.png
deleted file mode 100644
index a19083be7668600f73e056a625262c6f2bd2ff70..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/fhbg.gif b/src/public/stylesheets/flexigrid/images/fhbg.gif
deleted file mode 100644
index 8d459a304e0b224f8c28d6b7b585da7019d28cce..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/first.gif b/src/public/stylesheets/flexigrid/images/first.gif
deleted file mode 100644
index 7623e7387a1db305267e63826400a23bf4298dee..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/hl.png b/src/public/stylesheets/flexigrid/images/hl.png
deleted file mode 100644
index 6248e45dfe83355a94b9ccac57f557a760b003c3..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/last.gif b/src/public/stylesheets/flexigrid/images/last.gif
deleted file mode 100644
index 61483e998b141b8b137506dabf4338b045afa13d..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/line.gif b/src/public/stylesheets/flexigrid/images/line.gif
deleted file mode 100644
index 9a9e1de79cefedb2a2c400b72bbbea5410c41495..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/load.gif b/src/public/stylesheets/flexigrid/images/load.gif
deleted file mode 100644
index 68f01d04813c1f622810864a3aaa04b4a17ac8f9..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/load.png b/src/public/stylesheets/flexigrid/images/load.png
deleted file mode 100644
index d65defbcb54ab2e3ffb4d12201ca3f6a56182df4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/magnifier.png b/src/public/stylesheets/flexigrid/images/magnifier.png
deleted file mode 100644
index cf3d97f75e9cde9c143980d89272fe61fc2d64ee..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/next.gif b/src/public/stylesheets/flexigrid/images/next.gif
deleted file mode 100644
index 2cd62ccbfbdb217bf29b803f2bec734d34437f53..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/prev.gif b/src/public/stylesheets/flexigrid/images/prev.gif
deleted file mode 100644
index b440a29ad5b654d8f24509317ff3e6603d967064..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/up.png b/src/public/stylesheets/flexigrid/images/up.png
deleted file mode 100644
index 000c065635f189ba79e3566e1e9dbbdeec126dca..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/uup.png b/src/public/stylesheets/flexigrid/images/uup.png
deleted file mode 100644
index 660db638f243ac884e0b4e71a5170a183011b690..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/flexigrid/images/wbg.gif b/src/public/stylesheets/flexigrid/images/wbg.gif
deleted file mode 100644
index 8046089a9de7680673de4bc9dbf45ffedf72aa52..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-black-line.gif b/src/public/stylesheets/images/treeview-black-line.gif
deleted file mode 100644
index e5496877a07487f2f7437a9f87e07c590b51160a..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-black.gif b/src/public/stylesheets/images/treeview-black.gif
deleted file mode 100644
index d549b9fc56ced0c90bb7ed01c77be78b67fd8d67..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-default-line.gif b/src/public/stylesheets/images/treeview-default-line.gif
deleted file mode 100644
index 37114d3068e0a787dd44a39430a8fc44d1963dcf..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-default.gif b/src/public/stylesheets/images/treeview-default.gif
deleted file mode 100644
index a12ac52ffe4d085657aaf45db3cf5717c751230c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-famfamfam-line.gif b/src/public/stylesheets/images/treeview-famfamfam-line.gif
deleted file mode 100644
index 6e289cecc51b59a01c1278ce95653badf4e643de..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-famfamfam.gif b/src/public/stylesheets/images/treeview-famfamfam.gif
deleted file mode 100644
index 9372b8a849fba4347d609c43e4e26e149ac191cb..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-gray-line.gif b/src/public/stylesheets/images/treeview-gray-line.gif
deleted file mode 100644
index 37600447dc002bbc0dd16e1391b711360aae2e34..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-gray.gif b/src/public/stylesheets/images/treeview-gray.gif
deleted file mode 100644
index cfb8a2f0961b880d9ecc9e59f831d0c0bf9d06db..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-red-line.gif b/src/public/stylesheets/images/treeview-red-line.gif
deleted file mode 100644
index df9e749a8f1f58862588efc64988003efad01d51..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/images/treeview-red.gif b/src/public/stylesheets/images/treeview-red.gif
deleted file mode 100644
index 3bbb3a157f1568d59d6db02b55a3b3fe9a1ff7a7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/public/stylesheets/jquery.jgrowl.css b/src/public/stylesheets/jquery.jgrowl.css
deleted file mode 100644
index 95dbf48..0000000
--- a/src/public/stylesheets/jquery.jgrowl.css
+++ /dev/null
@@ -1,125 +0,0 @@
-
-div.jGrowl {
-	padding: 			10px;
-	z-index: 			9999;
-}
-
-/** Special IE6 Style Positioning **/
-div.ie6 {
-	position: 			absolute;
-}
-
-div.ie6.top-right {
-	right: 				auto;
-	bottom: 			auto;
-	left: 				expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
-  	top: 				expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
-}
-
-div.ie6.top-left {
-	left: 				expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
-	top: 				expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
-}
-
-div.ie6.bottom-right {
-	left: 				expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
-	top: 				expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
-}
-
-div.ie6.bottom-left {
-	left: 				expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
-	top: 				expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
-}
-
-div.id6.center {
-	left: 				expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
-	top: 				expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
-	width: 				100%;
-}
-
-/** Normal Style Positions **/
-body > div.jGrowl {
-	position:			fixed;
-}
-
-body > div.jGrowl.top-left {
-	left: 				0px;
-	top: 				0px;
-}
-
-body > div.jGrowl.top-right {
-	right: 				0px;
-	top: 				0px;
-}
-
-body > div.jGrowl.bottom-left {
-	left: 				0px;
-	bottom:				0px;
-}
-
-body > div.jGrowl.bottom-right {
-	right: 				0px;
-	bottom: 			0px;
-}
-
-body > div.jGrowl.center {
-	top: 				0px;
-	width: 				50%;
-	left: 				25%;
-}
-
-/** Cross Browser Styling **/
-div.center div.jGrowl-notification, div.center div.jGrowl-closer {
-	margin-left: 		auto;
-	margin-right: 		auto;
-}
-
-div.jGrowl div.jGrowl-notification, div.jGrowl div.jGrowl-closer {
-	background-color: 		#FFFFCC;
-	background-image: url(../images/icon_conf_success.png);
-	background-repeat: no-repeat;
-	color: 					 #333333;
-	opacity: 				.95;
-	filter: 				alpha(opacity = 85);
-	zoom: 					1;
-	width: 					380px;
-	padding: 				10px 10px 10px 40px;
-	margin-top: 			5px;
-	margin-bottom: 			5px;
-	font-family: 			Tahoma, Arial, Helvetica, sans-serif;
-	font-size: 				12px;
-	text-align: 			left;
-	display: 				none;
-	-moz-border-radius: 	5px;
-	-webkit-border-radius:	5px;
-	border:#E7A543 solid 1px;
-}
-
-div.jGrowl div.jGrowl-notification {
-	min-height: 				18px;
-	
-}
-
-div.jGrowl div.jGrowl-notification div.header {
-	font-weight: 			bold;
-	font-size:				10px;
-}
-
-div.jGrowl div.jGrowl-notification div.close {
-	float: 					right;
-	font-weight: 			bold;
-	font-size: 				12px;
-	cursor:					pointer;
-	padding:	            0 0 10px 12px;
-}
-
-div.jGrowl div.jGrowl-closer {
-	height: 				15px;
-	padding-top: 			4px;
-	padding-bottom: 		4px;
-	cursor: 				pointer;
-	font-size:				11px;
-	font-weight: 			bold;
-	text-align: 			center;
-	background-image:none;
-}
diff --git a/src/public/stylesheets/ovirt-tree/tree.css b/src/public/stylesheets/ovirt-tree/tree.css
deleted file mode 100644
index ef1f1f7..0000000
--- a/src/public/stylesheets/ovirt-tree/tree.css
+++ /dev/null
@@ -1,105 +0,0 @@
-#nav_tree {
-   padding: 0px 20px;
-}
-
-.nav-tree {
-    width: 222px;
-    overflow: auto;
-    position: relative;
-}
-
-.ovirt-tree, .ovirt-tree ul {
-    list-style: none;
-    margin:0;
-    padding:1px 0 1px 22px;
-    margin-right: 8px;
-}
-
-.ovirt-tree div {
-    background-repeat: no-repeat;
-    background-position: left;
-    padding: 4px 0 4px 4px;
-    width: 100%;
-    cursor: pointer; /* maybe move this into a clickable class? */
-}
-
-.unclickable {
-    color: grey;
-    cursor: default !important;
-}
-
-.HardwarePool {
-    padding: 4px 0 4px 28px !important;
-    background-image: url('../../images/icon_hdwarepool.png');
-}
-
-.VmResourcePool {
-    padding: 4px 0 4px 28px !important;
-    background-image: url('../../images/icon_vmpool.png');
-}
-
-.SmartPool {
-    padding: 4px 0 4px 28px !important;
-    background-image: url('../../images/icon_smartpool.png');
-}
-
-.SmartPoolRoot {
-    padding: 4px 0 4px 28px !important;
-    background-image: url('../../images/icon_smartpools.png');
-}
-.DirectoryPool {
-    padding: 4px 0 4px 28px !important;
-    background-image: url('../../images/icon_smartpools_dir.png');
-}
-
-.hitarea {
-	width: 16px;
-        margin: 4px 0 0 -16px;
-	float: left;
-	cursor: pointer;
-}
-
-.expandable {
-    background: url('../../images/dir_closed.png') no-repeat left;
-}
-
-.expanded {
-    background: url('../../images/dir_open.png') no-repeat left;
-}
-
-.ovirt-tree .current {
-    background-color: #698FA6;
-    color:#FFFFFF;
-    width: 100%;
-}
-
-.nav-smart-pool {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 130px;
-    background: #CCCCCC;
-    width: 218px;
-    padding: 5px 5px 5px 5px;
-    overflow: auto;
-}
-
-.nav-smart-pool-header {
-    color: #666666;
-}
-
-.nav-dashboard {
-    background-image: url('../../images/icon_dashboard.png');
-    background-repeat: no-repeat;
-    background-position: left;
-    padding: 4px 0 4px 28px;
-    position: relative;
-}
-
-.nav-networks {
-    background-image: url('../../images/icon_networks.png');
-    background-repeat: no-repeat;
-    background-position: left;
-    padding: 4px 0 4px 28px;
-    position:relative;
-}
diff --git a/src/public/stylesheets/ovirt.css b/src/public/stylesheets/ovirt.css
deleted file mode 100644
index 184b9e3..0000000
--- a/src/public/stylesheets/ovirt.css
+++ /dev/null
@@ -1,112 +0,0 @@
-/* OVirt Stylesheet */
-
-* { font-family: sans-serif; }
-
-div, img { margin: 0em; padding: 0em; border: none;}
-h1, h2, h3, h4 { margin: 0em; padding: 0.2em; }
-ul, ol, li { list-style: none; }
-ul, ol { padding: 0em; margin: 0em; padding-left: 0.2em; }
-em { color: #aaa; font-size: 90%; }
-hr { border: 1px solid #efefef; }
-a { text-decoration: none; color: #0066dd; }
-a:hover { text-decoration: underline; }
-
-body{ background-color:#ffffff; color:#222222; font-size:  9pt; font-family: "Bitstream Vera Sans", Verdana, Arial, sans-serif;  }
-
-div.inside { background-color: #fff; }
-
-#wrapper { margin: 2em auto; width: 80em; }
-
-#header { font-size: 20pt; }
-#header > div.inside { background-color: transparent; }
-
-#body { display: table; width: 100%; margin-top: 2em; }
-#body > div.inside { display: table-row; }
-
-#left {  width: 10em;  display: table-cell;  padding-left: 0.2em;  background-color: #fff; }
-
-#primary {  display: table-cell;  background-color: #f2f2f2;  padding: 0em 1em;  padding-bottom: 1em;  -moz-border-radius: 0.2em; font-size: 10pt; }
-
-
-/* ========= DATA TABLE ========== */
-#primary > div.inside { }
-
-#content { background-color: #fff; width: 50em; }
-
-#data, .dataTable { display: table; width: 100%; }
-#data div.inside, .dataTable div.inside { display: table-row; }
-#tools, #dataTableWrapper, div.data-table-column { display: table-cell; margin: 0; }
-div.data-table-column { padding: 0em; }
-.dataTable { margin-bottom: 1em; }
-
-#dataTableWrapper { padding: 0.5em; }
-
-h2.title { background-color: #f2f2f2; display: block; }
-
-.data-section { border: 1px solid #bbbbbb; margin-bottom: 0.5em; }
-.data-section-header { background-color: #e5e5e5; border-bottom: 1px solid #bbbbbb; padding: 0.2em;}
-.data-section-stats { padding: 0.2em; }
-.data-section-table { display: table; border-right: 1px solid #bbbbbb; border-top: 1px solid #bbbbbb; width: 20em;}
-.data-section-table .inside { display: table-row; }
-.data-section-table .odd { background-color: #f9f9f9;  }
-.data-section-table .odd .data-section-table-cell { border-top: 1px solid #dedede; border-bottom: 1px solid #dedede; }
-.data-section-table-header, .data-section-table-footer { color: #4c4d50; font-size: 8pt; display: table-cell; background-color: #e5e5e5; }
-.data-section-table-header {  border-bottom: 1px solid #bbbbbb; padding-left: 0.2em; }
-.data-section-table-cell { display: table-cell; }
-.data-section-table-footer { border-top: 1px solid #bbbbbb; }
-.data-section-table input, .data-section-table select { font-size: 8pt; }
-
-/* ========= TREE ========== */
-#tree a { display: block; -moz-border-radius: 0.1em 0em 0em 0.1em; padding-left: 0.2em; }
-#tree a:hover { background-color: #f9f9f9; }
-#tree a.selected { background-color: #f2f2f2; }
-#dashboard { padding: 0.5em 0.2em; }
-div.group { margin-left: 0.2em; }
-div.group a { padding-top: 0.2em; padding-bottom: 0.2em; }
-a.pool { font-weight: bold; }
-a.map { margin-left: 0.8em; }
-a.collection { margin-left: 2em; }
-
-/* ========= ACTIONS ========== */
-#tools { width: 15em;  background-color: #fafafa; padding-left: 0.5em; padding-bottom: 1em; vertical-align: top; font-size: 9pt; }
-div.actions a { display: list-item; list-style: none; color: #fff; padding: 0.2em 0em; }
-div.actions { -moz-border-radius: 0.2em; padding: 0.2em 0em 0.2em 0.5em; margin-right: 0.5em; margin-bottom: 0.5em; background-color: #4c4d50; color: #222;}
-div.actions hr { border: 1px solid #4c4d50; width: 80%; float: left; }
-div.create { background-color: #64a334; }
-div.create a { font-weight: bold; }
-div.edit { background-color: #3464a3; }
-div.users { background-color: #bfbfbf; color: #444; }
-div.remove { background-color: #cc0000; }
-
-/* ========= INPUTS ========== */
-label { display: block; font-size: 11pt; color: #666; }
-span.hidden { color: #333; font-weight: bold; }
-form { display: inline; margin: 0em; padding: 0em; }
-form.button-to div { display: inline; }
-option.other { color: #999; }
-
-div.i { margin: 0.7em 0em; }
-
-input[type="text"], input[type="password"], textarea {  padding: 0.1em;  border: 1px solid #001833; background-color: #fafafa; color: #222; }
-
-input[type="text"]:focus { 	background-color: #fdfdfd; }
-input[type="password"]:focus { 	background-color: #fdfdfd; }
-textarea:focus { 	background-color: #fdfdfd; }
-
-input[type="text"], input[type="password"] {  font-size: 16px; font-family: sans-serif; padding: 0.2em; font-weight: bold;
-}
-
-textarea { height: 10em; }
-
-input[type="submit"] { font-size: 12pt; font-weight: bold; padding: 0 1em 0.1em 1em; background-color:#003f87; color: #fff; border: 2px outset #04244a; }
-
-input[type="submit"]:hover { background-color: #084fa1; }
-
-input.blue-button { background-color: #0066dd; border: 2px outset #0033aa; color: #fff; }
-input.blue-button:hover { background-color: #0099ff; }
-
-input.green-button { background-color: #5cc400; border: 2px outset #57e925; color: #fff; }
-input.green-button:hover { background-color: #7ee600; }
-
-
-
-- 
1.6.6.1

