/* Hilfsfunktion um reguläre Ausdrücke zwischenzuspeichern */
function _css_get_regex(cls, flags) {
        var self = _css_get_regex;

        if (typeof(self._cls) == 'undefined' ||
            self._cls != cls || self._flags != flags) {
                var re = new RegExp('(^|\\s)' + cls + '(\s|$)', flags);

                self._cls = cls;
                self._flags = flags;
                self._re = re;
        }

        return self._re;
}

/* Prüft, ob das übergebene Element eine bestimmte CSS-Klasse besitzt */
function css_has_class(node, cls) {
        if (!node || !cls) return false;

        var re = _css_get_regex(cls);
        return re.test(node.className);
}

/* Fügt eine CSS-Klasse zum übergebenen Element hinzu */
function css_add_class(node, cls) {
        if (!node || !cls) return;

        node.className += ' ' + cls;
}

/* Entfernt eine CSS-Klasse vom übergebenen Element */
function css_del_class(node, cls) {
        if (!node || !cls) return;

        node.className = node.className.replace(_css_get_regex(cls, 'g'), '');
}

/* Funktion für das Menü auf der linken Seite */
function leftmenu_toggle(node) {
    if (typeof(node) == 'string') {
        node = document.getElementById(node);
    }
    if (!node) return;

    if (css_has_class(node, 'collapsed')) {
        css_del_class(node, 'collapsed');
    } else {
        css_add_class(node, 'collapsed');
    }

    return false;
}
