Index: trunk/web-app/js/assetTree.js
===================================================================
--- trunk/web-app/js/assetTree.js	(revision 312)
+++ trunk/web-app/js/assetTree.js	(revision 312)
@@ -0,0 +1,42 @@
+
+function showAssetTreePane(paneDivId, loadingImg, url) {
+    Effect.Appear(paneDivId,{duration:0.4});
+    new Effect.Pulsate($(loadingImg), { pulses: 200, duration: 133 });
+    new Ajax.Updater({ success: paneDivId }, url, {asynchronous:true,evalScripts:true});
+}
+
+function hideAssetTreePane(paneDivId, tableDivId, saveUrl) {
+
+    // Collect the visible div's first.
+    var visibleDivs = $(tableDivId).select('div').findAll(function(el) { return el.visible(); })
+    var params = "assetTreeVisibleBranches=";
+
+    // Hide the pane.
+    $(paneDivId).toggle();
+
+    // Add the id of each visible div to params.
+    visibleDivs.each(function(it) {
+        params += it.identify();
+        params += ","
+    });
+
+    // Remove the trailing comma.
+    params = params.slice(0,params.length-1);
+
+    // Post the id's of all visible divs.
+    // asynchronous: false is against the prototype recommendations but appears to be needed in this case.
+    new Ajax.Request(saveUrl, {parameters: params, asynchronous: false});
+}
+
+function toggleBranch(divId, imageId, openImgUrl, closedImgUrl) {
+
+    $(divId).toggle();
+
+    if( $(divId).visible() ) {
+        $(imageId).src= openImgUrl;
+    }
+    else {
+        $(imageId).src= closedImgUrl;
+    }
+
+}
Index: trunk/web-app/js/overlayPane.js
===================================================================
--- trunk/web-app/js/overlayPane.js	(revision 311)
+++ trunk/web-app/js/overlayPane.js	(revision 312)
@@ -1,44 +1,2 @@
-function toggleDiv(id) {
-    $(divId).toggle();
-}
-
-function showDiv(id) {
-    Effect.Appear(id,{duration:0.4,queue:'end'});
-}
-
-function hideAssetTreePane(paneDivId, tableDivId, saveUrl) {
-
-    var visibleDivs = $(tableDivId).select('div').findAll(function(el) { return el.visible(); })
-    var params = "assetTreeVisibleBranches=";
-
-    // Add the id of each visible div.
-    visibleDivs.each(function(it) {
-        params += it.identify();
-        params += ","
-    });
-
-    // Remove the trailing comma.
-    params = params.slice(0,params.length-1);
-
-    // Post the id's of all visible divs.
-    // asynchronous: false is against the prototype recommendations but appears to be needed in this case.
-    new Ajax.Request(saveUrl, {parameters: params, asynchronous: false});
-
-    // Hide the pane.
-    $(paneDivId).toggle();
-}
-
-function toggleBranch(divId, imageId, openImgUrl, closedImgUrl) {
-
-    $(divId).toggle();
-
-    if( $(divId).visible() ) {
-        $(imageId).src= openImgUrl;
-    }
-    else {
-        $(imageId).src= closedImgUrl;
-    }
-
-}
 
 function showElement(id) {
Index: trunk/web-app/js/util.js
===================================================================
--- trunk/web-app/js/util.js	(revision 312)
+++ trunk/web-app/js/util.js	(revision 312)
@@ -0,0 +1,12 @@
+
+function toggleUtil(id) {
+    $(id).toggle();
+}
+
+function showUtil(id) {
+    Effect.Appear(id,{duration:0.4,queue:'end'});
+}
+
+function hideUtil(id) {
+    Effect.Fade(id,{duration:0.4,queue:'end'});
+}
