// stands for protected menus
var pMenu = new Array();

var DELAY = 15;

var menuItems = [
    'nav_aboutus',
    'nav_worship',
    'nav_ministries',
    'nav_mission',
    'nav_newsevents',
    'nav_calendar',
    'nav_plugin',
    'nav_contactus'
    ];
var subMenuItems = [
    'nav_aboutus_sanctuarywindowhistory',
    'nav_aboutus_leadership',



    'nav_mission_local',
    'nav_mission_global',
    'nav_mission_volunteeropportunities'
    ];

function iOver( evt ) {

    var menu = document.getElementById(this.id + '_menu');
    if (!menu) return false;

    protectMenu(menu.id);

    showMenuBelow(this, menu);
}

function iOut( evt ) {
    var menu = document.getElementById(this.id + '_menu');
    if (!menu) return false;

    closeMenus( evt );
}

function mOut( evt ) {

    var pos = getCursorLoc(evt);
    if (!menuContainsCursor(this.id, pos.x, pos.y)) {
        closeMenus( evt );
    }
}

function miOver( evt ) {

    var menu = document.getElementById(this.id + '_menu');
    if (!menu) return false;

    protectMenu(menu.id);

    showMenuRight(this, menu);
}

function miOut( evt ) {

    var menu = document.getElementById(this.id + '_menu');
    if (!menu) return false;

    closeMenus( evt );
}

function closeMenus( evt ) {
    var pos = getCursorLoc(evt);
    setTimeout('checkCloseMenu(\'' + pos.x + '\',\'' + pos.y + '\')', DELAY);
}

function hideMenu( menu ) {

    menu.style.display = 'none';
}

function hideMenuById( menuId ) {
    var menu = document.getElementById(menuId);
    if (menu) hideMenu(menu);
}

function showMenuRight( item, menu ) {
    var p = item.offsetParent;
    var x = item.offsetLeft + item.offsetWidth;
    var y = item.offsetTop;

    while (p != null) {
        x += p.offsetLeft;
        y += p.offsetTop;

        p = p.offsetParent;
    }

    displayMenu(menu.id, x, y);
    //setTimeout('displayMenu(\'' + menu.id + '\',' + x + ',' + y + ')', DELAY);
}

function showMenuBelow( item, menu ) {
    var p = item.offsetParent;
    var x = item.offsetLeft;
    var y = item.offsetTop + item.offsetHeight - 15;

    while (p != null) {
        x += p.offsetLeft;
        y += p.offsetTop;

        p = p.offsetParent;
    }

    displayMenu(menu.id, x, y);
    //setTimeout('displayMenu(\'' + menu.id + '\',' + x + ',' + y + ')', DELAY);
}

function displayMenu(menuId, x, y) {
    var menu = document.getElementById(menuId);
    if (menu) {
        menu.style.display = 'block';
        menu.style.position = 'absolute';
        menu.style.top = y + 'px';
        menu.style.left = x + 'px';
    }
}

function getCursorLoc( evt ) {
    var x = 0;
    var y = 0;

    if (!evt) var evt = window.event;
    if (evt.pageX || e.pageY) { x = evt.pageX; y = evt.pageY; }
    else if (evt.clientX || evt.clientY) {
        x = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        y = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }

    return {x: x, y: y};
}

function getParentId( menuId ) {
    alert(menuId);

    return menuId;
}

function menuContainsCursor( menuId, mouseX, mouseY ) {

    menu = document.getElementById(menuId);
    if (!menu) return;
    var p = menu.offsetParent;

    var left = menu.offsetLeft + (p ? p.offsetLeft : 0);
    var right = left + menu.offsetWidth;
    var toop = menu.offsetTop + (p ? p.offsetTop : 0);
    var bottom = toop + menu.offsetHeight;

    if (mouseX < left || right < mouseX || mouseY < toop || bottom < mouseY) {
        return false;
    } else {
        return true;
    }
}

function checkCloseMenu(mouseX, mouseY ) {

    var deepestId = pMenu.peek();

    if (!deepestId) return;
    deepest = document.getElementById(deepestId);
    if (!deepest) return;

    var p = deepest.offsetParent;
    var left = deepest.offsetLeft + (p ? p.offsetLeft : 0);
    var right = left + deepest.offsetWidth;
    var toop = deepest.offsetTop + (p ? p.offsetTop : 0);
    var bottom = toop + deepest.offsetHeight;

    if (mouseX < left || right < mouseX || mouseY < toop || bottom < mouseY) {
        hideMenu(deepest);
        pMenu.pop();
        checkCloseMenu(mouseX, mouseY);
    } else {
        // done
    }
}

function protectMenu( id ) {
    if (!pMenu.contains(id)) {
        pMenu.push(id);
    }
}

function updatePMenu() {
    var c = document.getElementById('footer');
    var str = '';
    for (i in pMenu) {
         str += pMenu[i] + ', ';
     }

     c.innerHTML = '<p style="text-align: center;">' + str + '</p>';
}

window.onclick = function ( evt ) {

    var pos = getCursorLoc(evt);

    if (!menuContainsCursor(pMenu[pMenu.length - 1], pos.x, pos.y)) {
        pMenu = new Array();
        for (i in menuItems) {
            hideMenuById(menuItems[i] + '_menu');
        }
        for (i in subMenuItems) {
            hideMenuById(subMenuItems[i] + '_menu');
        }
    }
}

function onAnyMenu( x, y ) {
    var onMenu = false;
    for (i in menuItems) {
        if (x != null && menuContainsCursor(menuItems[i] + '_menu')) return true;
    }
    for (i in subMenuItems) {
        if (x != null && menuContainsCursor(subMenuItems[i] + '_menu')) return true;
    }
    return false;
}

function createAttr(attr, value) {
        var attribute = document.createAttribute(attr);
            attribute.nodeValue = value;
                return attribute;
}

window.onload = function () {

    for (i in menuItems) {
        var x = document.getElementById(menuItems[i]);
        if (x != null) {
            x.onmouseover = iOver;
            x.onmouseout = iOut;
        }

        x = document.getElementById(menuItems[i] + '_menu');
        if (x != null) {
            x.onmouseout = mOut;
        }
    }

    for (i in subMenuItems) {
        var x = document.getElementById(subMenuItems[i]);
        if (x != null) {
            x.onmouseover = miOver;
            x.onmouseout = miOut;
        }

        x = document.getElementById(subMenuItems[i] + '_menu');
        if (x != null) {
            x.onmouseout = mOut;
        }
    }

    var f = document.getElementById('emailFormTag');
    if (f) {
    var old_id = f.list_id.value;
    var i = document.createElement('input');
    i.setAttributeNode(createAttr('type','hidden'));
    i.setAttributeNode(createAttr('name','list_id_2'));
    i.setAttributeNode(createAttr('value',old_id * 2));
    f.appendChild(i);
    }

    if (typeof changeAtoFlash == 'function') if (DetectFlashVer(8, 0, 0)) {var dom = document.getElementById('main');changeAtoFlash(dom, 1);} 

    if (typeof(fixpng) != 'undefined') fixpng();
}


