diff --git a/www/extras/assetManager/Asset.js b/www/extras/assetManager/Asset.js
new file mode 100644
index 000000000..b03783ba0
--- /dev/null
+++ b/www/extras/assetManager/Asset.js
@@ -0,0 +1,56 @@
+
+//--------Constructor--------------------
+
+function Asset() {
+ //properties
+ this.url = "";
+ this.rank = 1;
+ this.assetId = "";
+ this.type = "";
+ this.title = "";
+ this.size = 0;
+ this.lastUpdate = "";
+ this.icon = "";
+ this.div = null;
+
+ //methods
+ this.edit = Asset_edit;
+ this.view = Asset_view;
+ this.displayProperties = Asset_displayProperties;
+}
+
+//---------Method Implementations -------------
+
+
+
+
+//Edit the properties of an asset (edit)
+//-------------------------------
+//url + ?||& + func=edit
+function Asset_edit() {
+ location.href = manager.tools.addParamDelimiter(this.url) + "func=edit";
+}
+
+//View an asset (view)
+//-------------
+//url + ?||& + func=view
+function Asset_view() {
+ location.href = manager.tools.addParamDelimiter(this.url) + "func=view";
+}
+
+function Asset_displayProperties() {
+ html = "
";
+ html+="
"
+ html+="
"
+ html+="
"
+ html+="
"
+ html+="
"
+ html+="
";
+ manager.display.displayPropertiesWindow(html);
+}
+
+
+
+
+
+
diff --git a/www/extras/assetManager/AssetManager.js b/www/extras/assetManager/AssetManager.js
new file mode 100644
index 000000000..df18e0e8f
--- /dev/null
+++ b/www/extras/assetManager/AssetManager.js
@@ -0,0 +1,278 @@
+//--------Constructor--------------------
+
+function AssetManager(assetArrayData,headerArrayData,lables,crumbtrail) {
+ this.tools = new Tools();
+ this.contextMenu = new ContextMenu();
+ this.display = new Display();
+ this.eventManager = new EventManager();
+
+
+ this.keys = new Array();
+ this.keys[0] = "rank";
+ this.keys[1] = "title";
+ this.keys[2] = "type";
+ this.keys[3] = "lastUpdate";
+ this.keys[4] = "size";
+
+ this.parentURL = "";
+
+ this.lables = lables;
+ this.crumbtrail = crumbtrail;
+ this.parentURL = "d";
+ this.renderAssets = AssetManager_renderAssets;
+ this.assetArrayData = assetArrayData;
+ this.columnHeadings = headerArrayData;
+ this.assets = new Array();
+ this.getAsset= AssetManager_getAsset;
+ this.buildCrumbTrail = AssetManager_buildCrumbTrail;
+ this.displayContextMenu = AssetManager_displayContextMenu;
+ this.editTree=AssetManager_editTree;
+ this.setParent=AssetManager_setParent;
+ this.setRank=AssetManager_setRank;
+ this.remove = AssetManager_remove;
+ this.cut = AssetManager_cut;
+ this.copy = AssetManager_copy;
+ this.sortGrid = AssetManager_sortGrid;
+ this.getSelectedAssetIds = AssetManager_getSelectedAssetIds;
+}
+
+function AssetManager_getManager() {
+ //debug(manager.assetArrayData);
+ return manager;
+}
+
+function AssetManager_renderAssets() {
+
+
+ var gridStr = '';
+//['Rank','Title','Type','Last Updated','Size'];
+ for (i=0;i';
+
+ /* rank, title, type, lastUpdate, size, url, assetId */
+ asset = new Asset();
+
+ asset.rank = this.assetArrayData[i][0];
+ asset.title = this.assetArrayData[i][1];
+ asset.type = this.assetArrayData[i][2];
+ asset.lastUpdate = this.assetArrayData[i][3];
+ asset.size = this.assetArrayData[i][4];
+ asset.url = this.assetArrayData[i][5];
+ asset.assetId = this.assetArrayData[i][6];
+ asset.icon = this.assetArrayData[i][7];
+ this.assets[i]=asset;
+
+ //add the row events
+// eventStr += 'document.getElementById("' + id + '").onclick=Grid_rowClicked;';
+// eventStr += 'document.getElementById("' + id + '").onmouseover=Grid_rowMouseOver;';
+// eventStr += 'document.getElementById("' + id + '").onmouseout=Grid_rowMouseOut;';
+ eventStr += 'document.getElementById("' + id + '").ondblclick=AssetManager_getManager().eventManager.assetDoubleClick;';
+ eventStr += 'document.getElementById("' + id + '").onmousedown=AssetManager_getManager().eventManager.assetMouseDown;';
+ eventStr += 'document.getElementById("' + id + '").oncontextmenu=AssetManager_getManager().eventManager.assetRightClick;';
+ eventStr += 'document.getElementById("' + id + '").asset = AssetManager_getManager().assets[' + i + '];';
+ eventStr += 'AssetManager_getManager().assets[' + i + '].div = document.getElementById("' + id + '");';
+
+
+ for (k=0;k' + this.assetArrayData[i][k] + '';
+// eventStr += 'document.getElementById("' + id + '").asset = AssetManager_getManager().assets[' + i + '];';
+ }
+ }
+ gridStr+='';
+
+ gridStr += '
';
+
+ document.getElementById("workspace").innerHTML=gridStr;
+ eval(eventStr);
+
+ this.buildCrumbTrail();
+
+
+ }
+
+function AssetManager_buildCrumbTrail() {
+ var crumbtrail = document.getElementById("crumbtrail");
+ var contents = "";
+
+ for (i=0;i' + this.crumbtrail[i][1] + '';
+ if (i != this.crumbtrail.length -1) {
+ contents += "| -> | ";
+ }
+ }
+
+ this.parentURL = "http://" + this.tools.getHostName("http://www.yahoo.com") + this.crumbtrail[this.crumbtrail.length -1][1];
+
+ contents += '
';
+
+ crumbtrail.innerHTML = contents;
+
+// for (i=0;i' + this.crumbtrail[i][1] + '';
+// if (i != this.crumbtrail.lenght) {
+// contents += " -> | ";
+// }
+
+ //}
+}
+
+function AssetManager_getAsset(obj) {
+
+ while (obj.tagName!=this.display.topLevelElement && obj.className != "am-grid-row") {
+ obj=this.display.dom? obj.parentNode : obj.parentElement
+ }
+
+ return obj.asset;
+}
+
+function AssetManager_displayContextMenu(x,y) {
+
+ var arr = new Array();
+
+ if (this.display.overObjects.length == 1) {
+ arr[arr.length] = new ContextMenuItem("View","javascript:manager.display.contextMenu.owner.view()");
+ arr[arr.length] = new ContextMenuItem("Edit","javascript:manager.display.contextMenu.owner.edit()");
+ }
+
+ arr[arr.length] = new ContextMenuItem("Delete","javascript:manager.remove()");
+ arr[arr.length] = new ContextMenuItem("
","");
+ arr[arr.length] = new ContextMenuItem("Cut","javascript:AssetManager_getManager().cut()");
+ arr[arr.length] = new ContextMenuItem("Copy","javascript:manager.copy()");
+
+ if (this.display.overObjects.length ==1) {
+ arr[arr.length] = new ContextMenuItem("
","");
+ arr[arr.length] = new ContextMenuItem("Edit Tree","javascript:manager.editTree()");
+ arr[arr.length] = new ContextMenuItem("Properties","javascript:manager.display.contextMenu.owner.displayProperties()");
+ }
+// alert("x = " + x + " y= " + y);
+
+ manager.contextMenu.render(arr,x,y,this);
+}
+
+
+//url + ?||& + func=editTree
+function AssetManager_editTree() {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=editTree";
+}
+
+//Moving to a new parent (move)
+//----------------------
+//url + ?||& + func=setParent&assetId= + assetId
+function AssetManager_setParent(parentId) {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setParent&assetId="+ parentId;
+}
+
+//Set the rank of an asset amongst its siblings (move)
+//---------------------------------------------
+//url + ?||& + func=setRank&rank= + newRank
+function AssetManager_setRank(rank) {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setRank&rank="+ rank;
+}
+
+
+//Copy an asset to the clipboard (copy)
+//------------------------------
+//url + ?||& + func=copy
+function AssetManager_copy() {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=copyList" + this.getSelectedAssetIds();
+}
+
+//Cut an asset to the clipboard (cut)
+//-----------------------------
+//url + ?||& + func=cut
+function AssetManager_cut() {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=cutList" + this.getSelectedAssetIds();
+}
+
+//Delete an asset. (delete)
+//----------------
+//url + ?||& + func=delete (do a javascript confirm on this)
+function AssetManager_remove() {
+ if (window.confirm("Are you sure you want to delete this asset? Click OK to continue, or Cancel if you made a mistake.")) {
+ location.href = this.tools.addParamDelimiter(this.parentURL) + "func=deleteList" + this.getSelectedAssetIds();
+ }
+}
+
+function AssetManager_getSelectedAssetIds() {
+ var assetIds = "";
+ for (i=0;i") {
+ colHeader.sortOrder="<";
+ document.getElementById('am_grid.headers.' + columnIndex).innerHTML = this.columnHeadings[columnIndex] + " (up)";
+
+ }else {
+ colHeader.sortOrder=">";
+ document.getElementById('am_grid.headers.' + columnIndex).innerHTML = this.columnHeadings[columnIndex] + "(down)";
+ }
+
+
+ var rowArray = new Array();
+
+ for (i=0; i