/*
* Copyright 1999-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent && obj.id != "lenya-cmsbody") {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

var MenuActive = false;

//runs at onload of window        
function Initialize() {
    UserEventsInit(); //set up all user events
}

function EventShowMenu(e) {

    if (!MenuActive) {
    
        var nav = document.getElementById("LanguageNav");
        var navX = findPosX(nav);
        var navY = findPosY(nav);
        var navHeight = 16;
        
        var menu = document.getElementById("LanguageMenu");
        
        menu.style.left = (navX) + "px";
        menu.style.top = (navY + navHeight) + "px";
        menu.style.visibility = "visible";
        
        MenuActive = true;
    }
}

function EventHideMenu(event) {

    var menu = document.getElementById("LanguageMenu");

    if (!event) var event = window.event;
    var obj = (window.event) ? event.srcElement : event.target;
    
    var relObj = (event.relatedTarget) ? event.relatedTarget : event.toElement;
    if (!relObj) return;
    
    while (relObj != menu && relObj.parentNode) {
    	  relObj = relObj.parentNode;
    }
    if (relObj == menu) return;
    
    // Mouseout took place when mouse actually left layer

    if (MenuActive) {
        menu.style.visibility = "hidden";
        MenuActive = false;
    }
}

//language events
function UserEventsInit() {

    var nav = document.getElementById("LanguageNav");
    nav.onmouseover = EventShowMenu;
    nav.onmouseout = EventHideMenu;
    
    var menu = document.getElementById("LanguageMenu");
    menu.onmouseout = EventHideMenu;
    menu.style.visibility = "hidden";
}
