﻿ //JScript File
var showMessages = false;
function hideAllMenus() {
    showMessage("Hide all menus.");
    for (dv in pages) {
        if (pages[dv].substr(0, 1) == "_")
            hideDiv(pages[dv]);
    }
}
var pagesToHide = new Array();
//var pagesToShow = new Array();
function showDiv(divID) {
    if (divID == "") return;
    showMessage("Show: " + divID);
    if (isPageToHide(divID)) removePageToHide(divID); showMessage("Cancel hiding: " + divID);
    var d1;
    d1 = document.getElementById(divID);
    if (d1 == null) return;
    if (d1.style.display == "block") return;
    if (d1.parentNode != null) showDiv(d1.parentNode.id);
    showObj(d1)
}
function showObj(obj) {
    if (obj.style.display == "block") return;
    try {
        hideAllOtherChildren(obj);
        //pagesToShow.push(obj.id);
        obj.style.display = "block";
    } catch (ex) {
        alert("Error: " + ex)
    }
}
function hideDiv(divID) {
    try {
        pagesToHide.push(divID);
        var delay = 0;
        // make sure showDiv has not removed it.
        if (isPageToHide(divID)) delay = 1000;
        if (delay > 0) {
            showMessage("Wait: " + delay + " to hide " + divID);
            setTimeout("hideMeAfterHover('" + divID + "')", delay);
        } else {
            hideMe(divID);
        }
    } catch (ex) {

    }
}
function removePageToHide(idToRemove) {
    var indexToRemove = -1;
    for (pID = 0; pID < pagesToHide.length; pID++) {
        if (pagesToHide[pID] == idToRemove) {
            indexToRemove = pID;
        }
    }
    if (indexToRemove > -1) pagesToHide.splice(indexToRemove, 1);
}

//function removePageToShow(idToRemove) {
//    var indexToRemove = -1;
//    for (pID = 0; pID < pagesToShow.length; pID++) {
//        if (pagesToShow[pID] == idToRemove)
//            indexToRemove = pID;
//    }
//    if (indexToRemove > -1) pagesToShow.splice(indexToRemove, 1);
//}

function isPageToHide(phID) {
    for (hID = 0; hID < pagesToHide.length; hID++) {
        if (pagesToHide[hID] == phID) return true;
    }
    return false;
}

//function isPageToShow(phID) {
//    for (hID = 0; hID < pagesToShow.length; hID++) {
//        if (pagesToShow[hID] == phID) return true;
//    }
//    return false;
//}

function hideMe(myID) {
    var hDiv = document.getElementById(myID)
    hideObj(hDiv);
}
function hideObj(obj) {
    if (obj == null) return;
    if (obj.style.display == "none") return;
    obj.style.display = "none";
    showMessage("<- " + obj.id);
    removePageToHide(obj.id);
    showMessage("Done hiding: " + obj.id);
}

function hideMeAfterHover(myID) {
    var reallyHideMe = false;
    if (myID == "") {
        reallyHideMe = true;
    } else {
        reallyHideMe = isPageToHide(myID);
    }
    if (reallyHideMe) {
        hideMe(myID);
    }
}


function pressBtn(btnID) {
    var btn = document.getElementById(btnID);
    btn.click;

}

function hideAllOtherChildren(myMenu) {
    var otherMenus = new Array();
    var parent = getParentDiv(myMenu);
    //if (parent.id.indexOf("menu") > -1) {
    if (parent != null) {
        otherMenus = parent.getElementsByTagName("div");
        showMessage(parent.id + " =>" + myMenu.id);
        for (oI = 0; oI < otherMenus.length; oI++) {
            if (otherMenus[oI].id != myMenu.id) hideObj(otherMenus[oI]);
        }
    }
    //}
    return null;
}

function getParentDiv(obj) {
    if (obj != null) {
        if (obj.parentNode != null) {
            if (obj.parentNode.tagName == "DIV") return obj.parentNode;
            return getParentDiv(obj.parentNode);
        }
    }

}
function showMessage(txt) {
    if (showMessages) {
        var box = document.getElementById("jsMessages")
        box.innerHTML += "<div>" + txt + "</div>";
    }
}
