/**
 * Gère le menu vertical
 *
 * @author     Eric Giovannetti <eric@bleuroy.com>
 * @copyright   BleuRoy.com
 * @version    1.0.0
 */
 
j.fn.verticalMenu = function() {

    function rollout(objMenuitem, objEvent) {
        var iKeyCode;
        if (objEvent && objEvent.type == 'keypress') {
            if (objEvent.keyCode)
                iKeyCode = objEvent.keyCode;
            else if (objEvent.which)
                iKeyCode = objEvent.which;
            if (iKeyCode != 13 && iKeyCode != 32)
                return true;
        }
        if (objMenuitem.nextSibling.style.display == 'block')
            var strDisplay = 'none'
        else
            var strDisplay = 'block';
        var objMenu = document.getElementById('menu');
        var objNested = objMenu.getElementsByTagName('ul');
        for (var i=0; i<objNested.length; i++) {
            if (objNested[i].style.display == 'block')
                objNested[i].style.display = 'none';
        }
        objMenuitem.nextSibling.style.display = strDisplay;
        while (objMenuitem.parentNode.parentNode.id != 'menu') {
            objMenuitem = objMenuitem.parentNode.parentNode;
            objMenuitem.style.display = 'block';
        }
        return false;
    }

    function initMenus() {
        var bRollup, objLinks, objNode, objAnchor;
        if (document.getElementById && document.createElement) {
            var strLocation = window.location;
            var objMenu = document.getElementById('menu');
            var objNested = objMenu.getElementsByTagName('ul');
            for (var i=0; i<objNested.length; i++) {
                bRollup = true;
                objLinks = objNested[i].getElementsByTagName('a');
                for (var j=0; j<objLinks.length; j++) {
                    if (objLinks[j].href == strLocation) {
                        bRollup = false;
                        objNode = objLinks[j];
                        strContent = objNode.firstChild.data;
                        var objCurrentPage = document.createElement('strong');
                        objCurrentPage.appendChild(document.createTextNode(strContent));
                        objNode.parentNode.replaceChild(objCurrentPage, objNode);
                        objCurrentPage.id = 'keepOpen';
                    }
                }
                if (bRollup == true)
                    objNested[i].style.display = 'none';
                else
                    objNested[i].style.display = 'block';
                objNode = objNested[i].parentNode;
                strContent = objNode.firstChild.data;
                objAnchor = document.createElement('a');
                objAnchor.href = '#';
                objAnchor.onclick = function(event) {
                    return rollout(this, event);
                }
                objAnchor.onkeypress = function(event) {
                    return rollout(this, event);
                }
                objAnchor.appendChild(document.createTextNode(strContent));
                objNode.replaceChild(objAnchor, objNode.firstChild);
            }
            if (document.getElementById('keepOpen')) {
                var objKeepOpen = document.getElementById('keepOpen');
                while (objKeepOpen.parentNode.id != 'menu') {
                    objKeepOpen = objKeepOpen.parentNode;
                    objKeepOpen.style.display = 'block';
                }
            }
        }
    }
    
    initMenus();
    
};