        function hasClass(e, c) {
            return e.className.match(new RegExp('(\\s|^)' + c + '(\\s|$)'));
        }
        
        var jshover = function() {
            var main_menu = document.getElementById('main_menu');
            if (!main_menu) { return; }
            var a = [];
            var la = main_menu.getElementsByTagName('a');
            for (var i = 0; i < la.length; i++) {
                if (hasClass(la[i], 'r')) {
                    a.push(la[i]);
                }
            }
            
            for (var j = 0; j < a.length; j++) {
                a[j].onclick = function() {
                    var t = this;
                    for (var i = 0; i < a.length; i++) {
                        if (a[i] != t) {
                            a[i].parentNode.className = '';
                        }
                    }
                    t.parentNode.className = (hasClass(t.parentNode, 'open') ? '' : 'open');
                    //t.className = (hasClass(t, 'c') ? '' : 'c');
                    return false;
                }
            }
        }
        
        if (window.addEventListener) {
            window.addEventListener('load', jshover, false);
        } else if (window.attachEvent) {
            window.attachEvent('onload', jshover);
        }