Initial Commit of AgileBill Open Source

This commit is contained in:
unknown
2008-11-26 14:50:40 -08:00
parent ae5a0fc25e
commit 02306ccc47
2954 changed files with 410976 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;
// We need to explicitly detect Konqueror
// because Konqueror 3 sets IE = 1 ... AAAAAAAAAARGHHH!!!
Konqueror = (navigator.userAgent.indexOf('Konqueror') > -1) ? 1 : 0;
// We need to detect Konqueror 2.2 as it does not handle the window.onresize event
Konqueror22 = (navigator.userAgent.indexOf('Konqueror 2.2') > -1 || navigator.userAgent.indexOf('Konqueror/2.2') > -1) ? 1 : 0;
Konqueror30 =
(
navigator.userAgent.indexOf('Konqueror 3.0') > -1
|| navigator.userAgent.indexOf('Konqueror/3.0') > -1
|| navigator.userAgent.indexOf('Konqueror 3;') > -1
|| navigator.userAgent.indexOf('Konqueror/3;') > -1
|| navigator.userAgent.indexOf('Konqueror 3)') > -1
|| navigator.userAgent.indexOf('Konqueror/3)') > -1
)
? 1 : 0;
Konqueror31 = (navigator.userAgent.indexOf('Konqueror 3.1') > -1 || navigator.userAgent.indexOf('Konqueror/3.1') > -1) ? 1 : 0;
// We need to detect Konqueror 3.2 and 3.3 as they are affected by the see-through effect only for 2 form elements
Konqueror32 = (navigator.userAgent.indexOf('Konqueror 3.2') > -1 || navigator.userAgent.indexOf('Konqueror/3.2') > -1) ? 1 : 0;
Konqueror33 = (navigator.userAgent.indexOf('Konqueror 3.3') > -1 || navigator.userAgent.indexOf('Konqueror/3.3') > -1) ? 1 : 0;
Opera = (navigator.userAgent.indexOf('Opera') > -1) ? 1 : 0;
Opera5 = (navigator.userAgent.indexOf('Opera 5') > -1 || navigator.userAgent.indexOf('Opera/5') > -1) ? 1 : 0;
Opera6 = (navigator.userAgent.indexOf('Opera 6') > -1 || navigator.userAgent.indexOf('Opera/6') > -1) ? 1 : 0;
Opera56 = Opera5 || Opera6;
IE = (navigator.userAgent.indexOf('MSIE') > -1) ? 1 : 0;
IE = IE && !Opera;
IE5 = IE && DOM;
IE4 = (document.all) ? 1 : 0;
IE4 = IE4 && IE && !DOM;

View File

@@ -0,0 +1,11 @@
<!-- beginning of menu footer - {packageName} {version} {copyright} {author} -->
{footer}
<script language="JavaScript" type="text/javascript">
<!--
loaded = 1;
// -->
</script>
<!-- end of menu footer - {packageName} {version} {copyright} {author} -->

View File

@@ -0,0 +1,57 @@
<!-- beginning of menu header - {packageName} {version} {copyright} {author} -->
<script language="JavaScript" type="text/javascript">
<!--
menuTopShift = {menuTopShift};
menuRightShift = {menuRightShift};
menuLeftShift = {menuLeftShift};
var thresholdY = {thresholdY};
var abscissaStep = {abscissaStep};
toBeHidden = new Array();
toBeHiddenLeft = new Array();
toBeHiddenTop = new Array();
{listl}
var numl = listl.length;
father = new Array();
for (i=1; i<={nodesCount}; i++) {
father['L' + i] = '';
}
{father_keys}
{father_vals}
for (i=0; i<father_keys.length; i++) {
father[father_keys[i]] = father_vals[i];
}
lwidth = new Array();
var lwidthDetected = 0;
function moveLayers()
{
if (!lwidthDetected) {
for (i=0; i<numl; i++) {
lwidth[listl[i]] = getOffsetWidth(listl[i]);
}
lwidthDetected = 1;
}
if (IE4) {
for (i=0; i<numl; i++) {
setWidth(listl[i], abscissaStep);
}
}
{moveLayers}
}
back = new Array();
for (i=1; i<={nodesCount}; i++) {
back['L' + i] = 0;
}
// -->
</script>
<!-- end of menu header - {packageName} {version} {copyright} {author} -->

View File

@@ -0,0 +1,248 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
layerLeft = new Array();
layerTop = new Array();
function setVisibility(layer, on)
{
if (on) {
if (DOM) {
document.getElementById(layer).style.visibility = 'visible';
} else if (NS4) {
document.layers[layer].visibility = 'show';
} else {
document.all[layer].style.visibility = 'visible';
}
} else {
if (DOM) {
document.getElementById(layer).style.visibility = 'hidden';
} else if (NS4) {
document.layers[layer].visibility = 'hide';
} else {
document.all[layer].style.visibility = 'hidden';
}
}
}
function isVisible(layer)
{
if (DOM) {
return (document.getElementById(layer).style.visibility == 'visible');
} else if (NS4) {
return (document.layers[layer].visibility == 'show');
} else {
return (document.all[layer].style.visibility == 'visible');
}
}
function setLeft(layer, x)
{
layerLeft[layer] = x;
if (DOM && !Opera5) {
document.getElementById(layer).style.left = x + 'px';
} else if (Opera5) {
document.getElementById(layer).style.left = x;
} else if (NS4) {
document.layers[layer].left = x;
} else {
document.all[layer].style.pixelLeft = x;
}
}
function getOffsetLeft(layer)
{
var value = 0;
if (DOM) { // Mozilla, Konqueror >= 2.2, Opera >= 5, IE
object = document.getElementById(layer);
value = object.offsetLeft;
//alert (object.tagName + ' --- ' + object.offsetLeft);
while (object.tagName != 'BODY' && object.offsetParent) {
object = object.offsetParent;
//alert (object.tagName + ' --- ' + object.offsetLeft);
value += object.offsetLeft;
}
} else if (NS4) {
value = document.layers[layer].pageX;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all['IE4' + layer]) {
layer = 'IE4' + layer;
}
object = document.all[layer];
value = object.offsetLeft;
while (object.tagName != 'BODY') {
object = object.offsetParent;
value += object.offsetLeft;
}
}
return (value);
}
function setTop(layer, y)
{
layerTop[layer] = y;
if (DOM && !Opera5) {
document.getElementById(layer).style.top = y + 'px';
} else if (Opera5) {
document.getElementById(layer).style.top = y;
} else if (NS4) {
document.layers[layer].top = y;
} else {
document.all[layer].style.pixelTop = y;
}
}
function getOffsetTop(layer)
{
// IE 5.5 and 6.0 behaviour with this function is really strange:
// in some cases, they return a really too large value...
// ... after all, IE is buggy, nothing new
var value = 0;
if (DOM) {
object = document.getElementById(layer);
value = object.offsetTop;
while (object.tagName != 'BODY' && object.offsetParent) {
object = object.offsetParent;
value += object.offsetTop;
}
} else if (NS4) {
value = document.layers[layer].pageY;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all['IE4' + layer]) {
layer = 'IE4' + layer;
}
object = document.all[layer];
value = object.offsetTop;
while (object.tagName != 'BODY') {
object = object.offsetParent;
value += object.offsetTop;
}
}
return (value);
}
function setWidth(layer, w)
{
if (DOM) {
document.getElementById(layer).style.width = w;
} else if (NS4) {
// document.layers[layer].width = w;
} else {
document.all[layer].style.pixelWidth = w;
}
}
function getOffsetWidth(layer)
{
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(layer).offsetWidth;
} else if (NS4) {
value = document.layers[layer].document.width;
} else if (Opera56) {
value = document.getElementById(layer).style.pixelWidth;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all['IE4' + layer]) {
layer = 'IE4' + layer;
}
value = document.all[layer].offsetWidth;
}
return (value);
}
function setHeight(layer, h) // unused, not tested
{
if (DOM) {
document.getElementById(layer).style.height = h;
} else if (NS4) {
// document.layers[layer].height = h;
} else {
document.all[layer].style.pixelHeight = h;
}
}
function getOffsetHeight(layer)
{
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(layer).offsetHeight;
} else if (NS4) {
value = document.layers[layer].document.height;
} else if (Opera56) {
value = document.getElementById(layer).style.pixelHeight;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all['IE4' + layer]) {
layer = 'IE4' + layer;
}
value = document.all[layer].offsetHeight;
}
return (value);
}
function getWindowWidth()
{
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.innerWidth;
// } else if (NS4) {
// value = document.width;
} else { // IE
if (document.documentElement && document.documentElement.clientWidth) {
value = document.documentElement.clientWidth;
} else if (document.body) {
value = document.body.clientWidth;
}
}
if (isNaN(value)) {
value = window.innerWidth;
}
return (value);
}
function getWindowXOffset()
{
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageXOffset;
} else { // IE
if (document.documentElement && document.documentElement.scrollLeft) {
value = document.documentElement.scrollLeft;
} else if (document.body) {
value = document.body.scrollLeft;
}
}
return (value);
}
function getWindowHeight()
{
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.innerHeight;
} else { // IE
if (document.documentElement && document.documentElement.clientHeight) {
value = document.documentElement.clientHeight;
} else if (document.body) {
value = document.body.clientHeight;
}
}
if (isNaN(value)) {
value = window.innerHeight;
}
return (value);
}
function getWindowYOffset()
{
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageYOffset;
} else { // IE
if (document.documentElement && document.documentElement.scrollTop) {
value = document.documentElement.scrollTop;
} else if (document.body) {
value = document.body.scrollTop;
}
}
return (value);
}

View File

@@ -0,0 +1,65 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
function scanChildren(element)
{
var counter = element.childNodes.length;
for (var i=0; i<counter; i++) {
foobar = element.childNodes.item(i);
if ( ( (Konqueror22 || Konqueror30 || Konqueror31) &&
( foobar.nodeName == 'INPUT' || foobar.nodeName == 'input'
|| foobar.nodeName == 'SELECT' || foobar.nodeName == 'select'
|| foobar.nodeName == 'TEXTAREA' || foobar.nodeName == 'textarea'
)
)
||
// Konqueror 3.2 and 3.3 need hiding only for the following two form elements, but, alas,
// at the time of this writing (Konqueror 3.2.3 and 3.3.0-rc2), hiding of such two form elements
// on Konqueror 3.2 and 3.3 does not work, it is affected by the following bug: http://bugs.kde.org/72885
( (Konqueror32 || Konqueror33) &&
( ((foobar.nodeName == 'SELECT' || foobar.nodeName == 'select') && foobar.size > 1)
|| foobar.nodeName == 'TEXTAREA' || foobar.nodeName == 'textarea'
)
)
||
( IE &&
( foobar.nodeName == 'SELECT' || foobar.nodeName == 'select' )
)
) {
toBeHidden[toBeHidden.length] = foobar;
}
if (foobar.childNodes.length > 0) {
scanChildren(foobar);
}
}
}
function seeThroughCoordinatesDetection()
{
if (!((Konqueror && !Konqueror22) || IE5)) {
return;
}
for (i=0; i<toBeHidden.length; i++) {
object = toBeHidden[i];
toBeHiddenLeft[i] = object.offsetLeft;
while (object.tagName != 'BODY' && object.offsetParent) {
object = object.offsetParent;
toBeHiddenLeft[i] += object.offsetLeft;
}
object = toBeHidden[i];
toBeHiddenTop[i] = object.offsetTop;
while (object.tagName != 'BODY' && object.offsetParent) {
object = object.offsetParent;
toBeHiddenTop[i] += object.offsetTop;
}
}
}
//document.write("<br />\nSCANNING STARTED<br />\n");
//scanChildren(document.getElementsByTagName('BODY').item(0));
if ((Konqueror || IE5) && document.getElementById('phplmseethrough')) {
scanChildren(document.getElementById('phplmseethrough'));
}
//document.write("<br />\nSCANNING COMPLETED<br />\n");
seeThroughCoordinatesDetection();

View File

@@ -0,0 +1,316 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
useTimeouts = 1;
timeoutLength = 1000; // time in ms; not significant if useTimeouts = 0;
shutdownOnClick = 0;
loaded = 0;
layersMoved = 0;
layerPoppedUp = '';
timeoutFlag = 0;
if (Opera56 || IE4) {
useTimeouts = 0;
}
if (NS4 || Opera56 || IE4) {
shutdownOnClick = 1;
}
currentY = 0;
function grabMouse(e) // for NS4
{
currentY = e.pageY;
}
if (NS4) {
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE);
document.onmousemove = grabMouse;
}
function seeThroughElements(show)
{
if (show) {
foobar = 'visible';
} else {
foobar = 'hidden';
}
for (i=0; i<toBeHidden.length; i++) {
toBeHidden[i].style.visibility = foobar;
}
}
function shutdown()
{
for (i=0; i<numl; i++) {
LMPopUpL(listl[i], false);
}
layerPoppedUp = '';
if (Konqueror || IE5) {
seeThroughElements(true);
}
}
if (shutdownOnClick) {
if (NS4) {
document.onmousedown = shutdown;
} else {
document.onclick = shutdown;
}
}
function setLMTO()
{
if (useTimeouts) {
timeoutFlag = setTimeout('shutdown()', timeoutLength);
}
}
function clearLMTO()
{
if (useTimeouts) {
clearTimeout(timeoutFlag);
}
}
function moveLayerX(menuName)
{
if (!loaded || (isVisible(menuName) && menuName != layerPoppedUp)) {
return;
}
if (father[menuName] != '') {
if (!Opera5 && !IE4) {
width0 = lwidth[father[menuName]];
width1 = lwidth[menuName];
} else if (Opera5) {
// Opera 5 stupidly and exaggeratedly overestimates layers widths
// hence we consider a default value equal to $abscissaStep
width0 = abscissaStep;
width1 = abscissaStep;
} else if (IE4) {
width0 = getOffsetWidth(father[menuName]);
width1 = getOffsetWidth(menuName);
}
onLeft = getOffsetLeft(father[menuName]) - width1 + menuLeftShift;
onRight = getOffsetLeft(father[menuName]) + width0 - menuRightShift;
windowWidth = getWindowWidth();
windowXOffset = getWindowXOffset();
// if (NS4 && !DOM) {
// windowXOffset = 0;
// }
if (onLeft < windowXOffset && onRight + width1 > windowWidth + windowXOffset) {
if (onRight + width1 - windowWidth - windowXOffset > windowXOffset - onLeft) {
onLeft = windowXOffset;
} else {
onRight = windowWidth + windowXOffset - width1;
}
}
if (back[father[menuName]]) {
if (onLeft < windowXOffset) {
back[menuName] = 0;
} else {
back[menuName] = 1;
}
} else {
//alert(onRight + ' - ' + width1 + ' - ' + windowWidth + ' - ' + windowXOffset);
if (onRight + width1 > windowWidth + windowXOffset) {
back[menuName] = 1;
} else {
back[menuName] = 0;
}
}
if (back[menuName]) {
setLeft(menuName, onLeft);
} else {
setLeft(menuName, onRight);
}
}
moveLayerY(menuName); // workaround needed for Mozilla < 1.4 for MS Windows
}
function moveLayerY(menuName)
{
if (!loaded || (isVisible(menuName) && menuName != layerPoppedUp)) {
return;
}
if (!layersMoved) {
moveLayers();
layersMoved = 1;
}
if (!NS4) {
newY = getOffsetTop('ref' + menuName);
} else {
newY = currentY;
}
newY += menuTopShift;
layerHeight = getOffsetHeight(menuName);
windowHeight = getWindowHeight();
windowYOffset = getWindowYOffset();
if (newY + layerHeight > windowHeight + windowYOffset) {
if (layerHeight > windowHeight) {
newY = windowYOffset;
} else {
newY = windowHeight + windowYOffset - layerHeight;
}
}
if (Math.abs(getOffsetTop(menuName) - newY) > thresholdY) {
setTop(menuName, newY);
}
}
function moveLayerX1(menuName, father)
{
if (!lwidthDetected) {
return;
}
if (!Opera5 && !IE4) {
width1 = lwidth[menuName];
} else if (Opera5) {
// Opera 5 stupidly and exaggeratedly overestimates layers widths
// hence we consider a default value equal to $abscissaStep
width1 = abscissaStep;
}
foobar = getOffsetLeft(father + menuName);
if (!IE4) {
windowWidth = getWindowWidth();
windowXOffset = getWindowXOffset();
if (foobar + width1 > windowWidth + windowXOffset) {
foobar = windowWidth + windowXOffset - width1;
}
if (foobar < windowXOffset) {
foobar = windowXOffset;
}
}
setLeft(menuName, foobar);
}
function layersOverlap(layer, i)
{
if (Konqueror22) {
return true;
}
// xa1 = getOffsetLeft(layer);
//setLeft(layer, xa1);
xa1 = layerLeft[layer];
xa2 = xa1 + getOffsetWidth(layer);
//setWidth(layer, xa2-xa1);
// ya1 = getOffsetTop(layer);
//setTop(layer, ya1);
ya1 = layerTop[layer];
ya2 = ya1 + getOffsetHeight(layer);
//setHeight(layer, ya2-ya1);
//alert(':' + xa1 + ':' + xa2 + ':' + ya1 + ':' + ya2 + ':');
xb1 = toBeHiddenLeft[i];
xb2 = xb1 + toBeHidden[i].offsetWidth;
yb1 = toBeHiddenTop[i];
yb2 = yb1 + toBeHidden[i].offsetHeight;
//alert(':' + xb1 + ':' + xb2 + ':' + yb1 + ':' + yb2 + ':');
if(xb1>xa1) xa1=xb1; if(xb2<xa2) xa2=xb2;
if(yb1>ya1) ya1=yb1; if(yb2<ya2) ya2=yb2;
return (xa2>xa1 && ya2>ya1);
}
function seeThroughWorkaround(menuName, on)
{
for (i=0; i<toBeHidden.length; i++) {
if (layersOverlap(menuName, i)) {
if (on) {
toBeHidden[i].style.visibility = 'hidden';
} else {
toBeHidden[i].style.visibility = 'visible';
}
}
}
}
function LMPopUpL(menuName, on)
{
if (!loaded) {
return;
}
if (!layersMoved) {
moveLayers();
layersMoved = 1;
}
setVisibility(menuName, on);
}
function LMPopUp(menuName, isCurrent)
{
if (!loaded || menuName == layerPoppedUp || (isVisible(menuName) && !isCurrent)) {
return;
}
if (menuName == father[layerPoppedUp]) {
LMPopUpL(layerPoppedUp, false);
// seeThroughWorkaround(menuName, false);
} else if (father[menuName] == layerPoppedUp) {
LMPopUpL(menuName, true);
seeThroughWorkaround(menuName, true);
} else {
shutdown();
foobar = menuName;
do {
LMPopUpL(foobar, true);
seeThroughWorkaround(foobar, true);
foobar = father[foobar];
} while (foobar != '')
}
/*
if (layerPoppedUp == '') {
seeThroughElements(false);
}
*/
layerPoppedUp = menuName;
}
function resizeHandler()
{
if (NS4) {
window.location.reload();
}
shutdown();
for (i=0; i<numl; i++) {
setLeft(listl[i], 0);
setTop(listl[i], 0);
}
if (toBeHidden != null && toBeHidden.length > 0) {
seeThroughCoordinatesDetection();
}
// moveLayers();
layersMoved = 0;
}
window.onresize = resizeHandler;
function yaresizeHandler()
{
if (window.innerWidth != origWidth || window.innerHeight != origHeight) {
if (Konqueror22 || Opera5) {
window.location.reload(); // Opera 5 often fails this
}
origWidth = window.innerWidth;
origHeight = window.innerHeight;
resizeHandler();
}
setTimeout('yaresizeHandler()', 500);
}
function loadHandler()
{
if (Konqueror22 || Opera56) {
origWidth = window.innerWidth;
origHeight = window.innerHeight;
yaresizeHandler();
}
}
window.onload = loadHandler;
function fixieflm(menuName)
{
if (DOM) {
setWidth(menuName, '100%');
} else { // IE4 IS SIMPLY A BASTARD !!!
document.write('</div>');
document.write('<div id="IE4' + menuName + '" style="position: relative; width: 100%; visibility: visible;">');
}
}

View File

@@ -0,0 +1,70 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
function setLMCookie(name, value)
{
document.cookie = name + '=' + value + ';path=/';
}
function getLMCookie(name)
{
foobar = document.cookie.split(name + '=');
if (foobar.length < 2) {
return null;
}
tempString = foobar[1];
if (tempString.indexOf(';') == -1) {
return tempString;
}
yafoobar = tempString.split(';');
return yafoobar[0];
}
function parseExpandString()
{
expandString = getLMCookie('phplm_expand');
phplm_expand = new Array();
if (expandString) {
expanded = expandString.split('|');
for (i=0; i<expanded.length-1; i++) {
phplm_expand[expanded[i]] = 1;
}
}
}
function parseCollapseString()
{
collapseString = getLMCookie('phplm_collapse');
phplm_collapse = new Array();
if (collapseString) {
collapsed = collapseString.split('|');
for (i=0; i<collapsed.length-1; i++) {
phplm_collapse[collapsed[i]] = 1;
}
}
}
parseExpandString();
parseCollapseString();
function saveExpandString()
{
expandString = '';
for (i=0; i<phplm_expand.length; i++) {
if (phplm_expand[i] == 1) {
expandString += i + '|';
}
}
setLMCookie('phplm_expand', expandString);
}
function saveCollapseString()
{
collapseString = '';
for (i=0; i<phplm_collapse.length; i++) {
if (phplm_collapse[i] == 1) {
collapseString += i + '|';
}
}
setLMCookie('phplm_collapse', collapseString);
}

View File

@@ -0,0 +1,52 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
function {toggle_function_name}(nodeid)
{
if ((!DOM || Opera56 || Konqueror22) && !IE4) {
return;
}
layersMoved = 0;
parseExpandString();
parseCollapseString();
if (!IE4) {
sonLayer = document.getElementById('jt' + nodeid + 'son');
nodeLayer = document.getElementById('jt' + nodeid + 'node');
folderLayer = document.getElementById('jt' + nodeid + 'folder');
} else {
sonLayer = document.all('jt' + nodeid + 'son');
nodeLayer = document.all('jt' + nodeid + 'node');
folderLayer = document.all('jt' + nodeid + 'folder');
}
if (sonLayer.style.display == 'none') {
sonLayer.style.display = 'block';
if (nodeLayer.src.indexOf('{img_expand}') > -1) {
nodeLayer.src = '{img_collapse}';
} else if (nodeLayer.src.indexOf('{img_expand_first}') > -1) {
nodeLayer.src = '{img_collapse_first}';
} else if (nodeLayer.src.indexOf('{img_expand_corner}') > -1) {
nodeLayer.src = '{img_collapse_corner}';
} else {
nodeLayer.src = '{img_collapse_corner_first}';
}
folderLayer.src = '{img_folder_open}';
phplm_expand[nodeid] = 1;
phplm_collapse[nodeid] = 0;
} else {
sonLayer.style.display = 'none';
if (nodeLayer.src.indexOf('{img_collapse}') > -1) {
nodeLayer.src = '{img_expand}';
} else if (nodeLayer.src.indexOf('{img_collapse_first}') > -1) {
nodeLayer.src = '{img_expand_first}';
} else if (nodeLayer.src.indexOf('{img_collapse_corner}') > -1) {
nodeLayer.src = '{img_expand_corner}';
} else {
nodeLayer.src = '{img_expand_corner_first}';
}
folderLayer.src = '{img_folder_closed}';
phplm_expand[nodeid] = 0;
phplm_collapse[nodeid] = 1;
}
saveExpandString();
saveCollapseString();
}