// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/


function toggleState(element,nosave) {
/*	if ((!DOM || Opera56 || Konqueror22) && !IE4) {
		return;
	}
	layersMoved = 0;*/
	if (hasClassName(element,'collapsed')) {
		switchClassName(element,'collapsed','expanded');
	} else if (hasClassName(element,'expanded')) {
		switchClassName(element,'expanded','collapsed');
	}
	
	if (!nosave) {
		saveState();	
	}
}

function hasClassName(element,className) {
    if (element.className) {
	    if (element.className.indexOf(className) > -1) {
	        return true;
	    }
	}
    return false;
}

function switchClassName(element,classNameFrom,classNameTo) {
	element.className = element.className.replace(classNameFrom,classNameTo);
}

function parseState() {
	str = getLMCookie('dm_state');
	arr = new Array();
	if (str) {
		arr = explode('|',str);
	}
	for (key in arr) {
		toggleState(document.getElementById('dm-menu-item-'+arr[key]),1);
	}
}

function saveState() {
	collapsedElements = getElementsByClass('collapsed',document.getElementById('dm-ver-tree'),'li');
	arr = new Array();
	for (key in collapsedElements) {
		arr[key] = collapsedElements[key].id.replace('dm-menu-item-','');
	}
	str = implode('|',arr);
	setLMCookie('dm_state', str);
}

function setLMCookie(name, value) {
	document.cookie = name + '=' + value + ';path=/';
}

function getLMCookie(name) {
	arr = document.cookie.split(name + '=');
	if (arr.length < 2) {
		return null;
	}
	str = arr[1];
	if (str.indexOf(';') == -1) {
		return str;
	}
	foobar = str.split(';');
	return foobar[0];
}

function implode(delim, arr) {
   	var str = '';
   	for (var i=0; i<arr.length; i++) {
    	str += arr[i];
     	if ((i+1) < arr.length) str += delim;
   	}
   	return str;
}

function explode(delim, str) {
	var arr = str.split(delim);
	return arr;
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
