//SolTecMenù
//Last modified: 2009-07-28

//var menuClassName= "menuNavigazioneZ" //da implementare nella pagina
var currentMenuOpen = undefined;
var IDtimeOnMenu;
var currentMenuOver;

//Jquery Manner (2009-06-17)
$(document).ready(function() {
    $("ol." + menuClassName + ", ul." + menuClassName + "").each(function() {
        InitSolTecMenu(this);
    });
    if (typeof (AopenID) != "undefined") {
        //non è possibile fare una select con Jqery perché il nome contiene dei caratteri per lui illegali (vedi $)
        currentMenuOpen = getUpLi(document.getElementById(AopenID));
        currentMenuOpen.subMenu.className = currentMenuOpen.subMenu.className.replace(/subMenu-off/g, "subMenu-on");
    }

    if (typeof (openDynamicMenuID) != "undefined") {
        $(document.getElementById(openDynamicMenuID)).addClass("DynamicMenuSelected");
    }
});



function haveSubList(obj) {
    var elementi = $(obj).find("ul:eq(0)");
    var numeroSottoElementi = elementi.length;
    return (numeroSottoElementi > 0);
}

function getSubUl(obj) {
    return $(obj).find("li,ul:eq(0)")[0];
}

function getUpLi(obj) {
    return $(obj).parents("li:eq(0)")[0];
}

function getAtext(obj) {
    return $(obj).find("a:eq(0)").html();
}


function Trim(stringa) {
    reTrim = /\s+$|^\s+/g;
    return stringa.replace(reTrim, "");
}

function openSubMenu(IDa) {
    var obj = getObj(IDa);
    var obj = document.getElementById(IDa);
    getSubUl(obj).className.replace(/subMenu-off/g, "subMenu-on");
}



function InitSolTecMenu(menu) {
    if (!menu) return;
    for (var i = 0; i < menu.childNodes.length; i++){
        if (menu.childNodes[i].nodeName.toLowerCase() == "li") {
            var li = menu.childNodes[i];
            if (haveSubList(li)) { /* se ha ul sottoposti*/
                var subLink = $(li).find("a:eq(0)")
                subLink.click(function() {
                    currentMenuOver = $(this).parent("li:eq(0)")[0];
                    openSub();
                    return false;
                });
                li.onmouseover = li.onactive = li.onfocus = function() {
                    currentMenuOver = this;
                    clearTimeout(IDtimeOnMenu);
                    IDtimeOnMenu = window.setTimeout("openSub()", 1000);
                }
                li.onmouseout = function() {
                    clearTimeout(IDtimeOnMenu);
                }
                /* si occupa di chiudere anche tutti i sotto-figli*/
                for (var j = 0; j < li.childNodes.length; j++) {
                    if (li.childNodes[j].nodeName.toLowerCase() == "ul" || li.childNodes[j].nodeName.toLowerCase() == "ol")
                        InitSolTecMenu(li.subMenu = li.childNodes[j]);
                }
            }
        }
    }
    menu.className = menu.className.replace(/\s?subMenu-on/g, "") + " subMenu-off";
}

function closeSub(menu) {
    if (!menu) return;
    for (var i = 0; i < menu.childNodes.length; i++)
        if (menu.childNodes[i].nodeName.toLowerCase() == "li") {
        li = menu.childNodes[i];
        if (haveSubList(li)) { /* se ha ul sottoposti*/
            /* si occupa di chiudere anche tutti i sotto-figli*/
            for (var j = 0; j < li.childNodes.length; j++) {
                if (li.childNodes[j].nodeName.toLowerCase() == "ul" || li.childNodes[j].nodeName.toLowerCase() == "ol")
                    closeSub(li.subMenu = li.childNodes[j]);
            }
        }
    }
    menu.className = menu.className.replace(/\s?subMenu-on/g, "") + " subMenu-off";
}

function openSub() {
    clearTimeout(IDtimeOnMenu);
    if (currentMenuOver.subMenu) { //l'ul contenuto
        if (Trim(currentMenuOver.subMenu.className.toLowerCase()) == "submenu-off") {
            if (currentMenuOpen != undefined) {
                if (currentMenuOpen != currentMenuOver) {
                    if (currentMenuOpen.subMenu != null) currentMenuOpen.subMenu.className = currentMenuOpen.subMenu.className.replace(/\s?subMenu-on/g, "") + " subMenu-off";
                    currentMenuOver.className = '';
                }
            }
            currentMenuOver.className = 'StaticMenuOn';
            //this.style.color = 'red';
            currentMenuOpen = currentMenuOver;
            /* document.getElementById('TXT_debug').innerHTML += getAtext(this) +" - apri.\n" */
            currentMenuOver.subMenu.className = currentMenuOver.subMenu.className.replace(/subMenu-off/g, "subMenu-on");
        }
    }
}

//
// funzioni in disuso:
//

function getUniversalInnerText(el) {
    var str = ""
    for (var i = 0; i < el.childNodes.length; i++) {
        switch (el.childNodes.item(i).nodeType) {
            case 1: //ELEMENT_NODE
                str += getUniversalInnerText(el.childNodes.item(i));
                break;
            case 3: //TEXT_NODE
                str += el.childNodes.item(i).nodeValue;
                break;
        }
    }
    return str;
}

function isChildrenActiveObject(obj, event) {
    var pointObj = document.elementFromPoint(event.clientX, event.clientY)
    var curEl;
    // document.getElementById('TXT_debug').innerHTML += getAtext(pointObj) +" point"++"- chiuso.\n" 
    curEl = pointObj.offsetParent();
    do {
        curEl = curEl.offsetParent;
        if (curEl == obj)
            return true;
    } while (curEl.tagName.toLowerCase() != "body");
    return false
}

function helpInClipping(panel) {
    var z = 1;
    var isIE = window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && !window.opera;
    if (isIE) {
        var childFrameId = panel.id + "_MenuIFrame";
        var childFrame = WebForm_GetElementById(childFrameId);
        var parent = panel.offsetParent;
        if (!childFrame) {
            childFrame = document.createElement("iframe");
            childFrame.id = childFrameId;
            childFrame.src = "about:blank";
            childFrame.style.position = "absolute";
            childFrame.style.display = "none";
            childFrame.scrolling = "no";
            childFrame.frameBorder = "0";
            if (parent.tagName.toLowerCase() == "html") {
                document.body.appendChild(childFrame);
            }
            else {
                parent.appendChild(childFrame);
            }
        }
        var pos = WebForm_GetElementPosition(panel);
        var parentPos = WebForm_GetElementPosition(parent);
        WebForm_SetElementX(childFrame, pos.x - parentPos.x);
        WebForm_SetElementY(childFrame, pos.y - parentPos.y);
        WebForm_SetElementWidth(childFrame, pos.width);
        WebForm_SetElementHeight(childFrame, pos.height);
        childFrame.style.display = "block";
        if (panel.currentStyle && panel.currentStyle.zIndex) {
            z = panel.currentStyle.zIndex;
        }
        else if (panel.style.zIndex) {
            z = panel.style.zIndex;
        }
        if (panel.style.display == 'none')
            childFrame.style.display = 'none';
    }

    panel.style.zIndex = z;
}