// drag/drop code
function dragstart() {
var e;
e = window.event.srcElement;
if (e.tagName != "label")
return false;
dragElement = e.parentElement;
}
// method called as we start drag/drop
// called as we mouse over - note that there is special handling for dragover code
// as dragleave doesn't track the toElement/fromElement as mouseover/mouseout does
function dragover() {
if (window.event.srcElement.tagName != "treeitem")
return;
// called when drag is ended - always
function dragend() {
if (currOver) {
currOver.style.borderTopColor = "";
}
}
// called on drop
function dragdrop() {
if (currOver) {
currOver.style.borderTopColor = "";
}
t = currOver;
t.parentElement.insertBefore(dragElement, t);
}
// needed to select items so they can be dragged
// drag drop only supported on selection and images
function preselect() {
var e;
e = window.event.srcElement;
if (e.tagName != "label") {
return;
}
r = document.body.createTextRange();
r.moveToElementText(e);
r.select();
window.event.cancelBubble = true;
}
// beginning of expand/collapse code
// called to handle document click, starts toggling
function click() {
if (window.event.srcElement.tagName != "label") {
return;
}
if (window.event.srcElement.parentElement.children.length > 1) {
toggleState(window.event.srcElement.parentElement);
}
}
// toggles expanding/collapse state of an element - does setup
function toggleState(e) {
e.oHeight = e.scrollHeight + 2;
e.style.posHeight = e.offsetHeight;