function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp(classname);
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++) {
        if(re.test(els[i].className)) {
            a.push(els[i]);
        }
    }
    return a;
}

function toggleElementsDisplay(smcl, mid) {
	var menu = document.getElementById(mid);
	var classes = menu.className;
	if (/menu_opened/.test(classes)) {
		classes = classes.replace(/menu_opened/, '');
	} else 
		classes = classes + ' menu_opened';
	classes = classes.replace(/\s+/g, ' ');
	classes = classes.replace(/((\s*\S+)*)\s*/, '$1');
	classes = classes.replace(/\s*((\S+\s*)*)/, '$1');
	menu.className = classes;
	
	var submenus = getElementsByClassName(smcl);
	for (var i = 0; i < submenus.length; i++)
		if (submenus[i].style.display == 'none')
			submenus[i].style.display = 'block';
		else
			submenus[i].style.display = 'none';
}

function setElementsDisable(cl, pid, checkbox) {
	var parent = document.getElementById(pid);
	var a = getElementsByClassName(cl, parent);
	for (var i = 0; i < a.length; i++)
		if (a[i] != checkbox)
			a[i].disabled = !checkbox.checked;
}
