this._lastAniImg = null;
// preload images
- var images = ['pl.gif', 'pl_ani.gif', 'mi.gif', 'mi_ani.gif'], img;
+ var images = ['pl.png', 'pl_ani.png', 'mi.png', 'mi_ani.png'], img;
for (var i=0 ; i < images.length ; i++) {
img = new Image();
img.src = this.baseImgUrl + images[i];
var target = getTargetedObject(evt);
if (target.blur)
target.blur();
-
+
if (target.tagName == 'IMG') {
target.parentNode.blur();
var srcParts = target.src.split("/");
switch (imgId) {
- case "pl.gif" :
- case "pl_ani.gif" :
+ case "pl.png" :
+ case "pl_ani.png" :
var linkCell = parentTd.nextSibling;
while (linkCell.nodeType != 1)
linkCell = linkCell.nextSibling;
tm.importRows(req, parentRow);
};
};
+ target.src = this.baseImgUrl + "mi_ani.png";
+ this._lastAniImg = target;
+ window.setTimeout(function(){tm._removeLastAniImg();}, 500);
+
req.open("POST", obUrl + "/xml_nav_tree", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
- req.send("filter=" + this.filter);
+ req.send("filter=" + encodeURIComponent(this.filter) +
+ "&root_name=" + encodeURIComponent(this.root.id) +
+ "&expansion=" + encodeURIComponent(this.getExpansion()));
- target.src = this.baseImgUrl + "mi_ani.gif";
- this._lastAniImg = target;
-
-
- window.setTimeout(function(){tm._removeLastAniImg();}, 500);
break;
- case "mi.gif" :
- case "mi_ani.gif" :
+ case "mi.png" :
+ case "mi_ani.png" :
this.removeChildNodes(parentRow);
- target.src = this.baseImgUrl + "pl_ani.gif";
+ target.src = this.baseImgUrl + "pl_ani.png";
this._lastAniImg = target;
var tm = this;
window.setTimeout(function(){tm._removeLastAniImg();}, 500);
+ document.cookie = encodeURIComponent(this.root.id) + '-state=' + encodeURIComponent(this.getExpansion()) +
+ ';path=/';
break;
} // end switch (imgId)
disableDefault(evt);
}
};
+TreeMaker.prototype.getExpansion = function() {
+ var rows = this.root.getElementsByTagName('TR');
+ var row, cells, stateCell, button, expid, node_depth, last_depth = -1, dd, step;
+ var steps = new Array();
+ steps.push(this.root.getAttribute('name'));
+
+ var expanded = (/.*mi\.png$|.*mi_ani\.png$/);
+ for(i=0 ; i < rows.length ; i++) {
+ row = rows[i];
+ cells = row.getElementsByTagName('TD');
+ stateCell = cells[cells.length-2]; // cell where the +/- button is
+ button = stateCell.getElementsByTagName('IMG');
+ if (! button.length)
+ continue;
+ button = button[0];
+ if (expanded.test(button.src)) {
+ expid = button.parentNode.getAttribute("name");
+ node_depth = cells[0].getAttribute('colspan') || 0;
+ dd = last_depth - node_depth + 1;
+ last_depth = node_depth;
+ if (dd > 0) {
+ step = '';
+ for (var j = 0 ; j < dd ; j++)
+ step = step + '_';
+ steps.push(step);
+ }
+ steps.push(expid);
+ }
+ }
+ return steps.join(':');
+};
+
/*
* expand the tree: sends request and imports rows based on xml response.
stateLink.href = ".";
stateLink.setAttribute("name", row.getAttribute("name"));
var stateImg = document.createElement("IMG");
- stateImg.src = this.baseImgUrl + "pl.gif";
+ stateImg.src = this.baseImgUrl + "pl.png";
stateImg.border = "0";
stateImg.height = "16";
stateImg.width = "16";