// JavaScript Document
var activeMenuObject;
var timer;
var timerBreak;
var defaultAnimDuration = 200;
var defaultBreak = 5000;
var menuInQueue;
//if it's a Joomla site.
var menus = Array();
var submenus = Array();
//
$(document).ready(initFloatingBox);
/**
 * Initiates the floating menu box
 */
function initFloatingBox() {
    $('H1').after($("#submenuContentHead").detach());
    $("#submenuContentHead").hide();
    //
    $('body').append('<div id="floatingMenu">'+
    '<div class="menubox floatingMenuHead" id="floatingMenuHead" onmouseout="menuItemMouseOut()" onmouseover="menuItemOver()"></div>'+
    '<div class="menubox floatingMenuSub" id="floatingMenuSub" onmouseout="menuItemMouseOut()" onmouseover="menuItemOver()"></div></div>');
    $("#floatingMenu").animate({opacity:0},{duration:0});
    $("#floatingMenu").animate({top:0,left:0},{duration:0});
    // These lines are suppported to get menu items from Joomla modul
    var tempMenus = new Array();
    var menuitems = $("#mainmenu H3").get();
    for (var i = 0; i < menuitems.length; i++) {
        var id = 'menu'+i;
        tempArray = new Array();
        $(menuitems[i]).attr('id',id);
        $(menuitems[i]).mouseover(function() {openMenu(this.id)} );
        var subs = $(menuitems[i]).siblings("UL").children("LI");
        for (var j=0; j<subs.length; j++) {
            var obj = new Object();
            obj.label = $(subs[j]).children("A").text();
            obj.active = ($(subs[j]).is('.active')) ? true : false;
            if ($(subs[j]).is('.active')) {
                submenus = new Array();
                pickUpSubmenus($(subs[j]).clone());      
            }
            obj.url = $(subs[j]).children("A").attr("href");
            tempArray[j] = obj;   
        }
        tempMenus[id] = tempArray;
    }
    menus = tempMenus;
}
function pickUpSubmenus(jqObject) {
    var subul = jqObject.html();
    if (subul != null && subul.length != "") {
        var head = '<ul><li id="'+jqObject.attr("id")+'">';
        var menu = $("#submenuContentHead").append(head+subul+'</li></ul>');
        //setContentmenuStyle(menu);
        var newmenu = createFormattedMenu(menu.clone());
        var beforemenu = getParents(menu.clone());
        $("#submenuContentHead > *").replaceWith(beforemenu+newmenu.html());
        $("#submenuContentHead").addClass("visibleMenu");
        $("#submenuContentHead").show();
    } else {
        $("#submenuContentHead").removeClass("visibleMenu");
    }
}
/*
function setContentmenuStyle(menu) {
    menu.children("LI").addClass("activesubs");
    menu.parents().addClass("activeparents");
}
*/
function createFormattedMenu(menu) {
    var activeObj = menu.find("LI[id='current']");
    return activeObj;
}
function getParents(menu) {
    var p = menu.find("LI[id='current']").parents();
    var ret = '<a href="index.php" title="nyitó">Nyitó</a>&nbsp;&gt;&nbsp;';
    for (var i=p.length-1; i>=0; i--) {
        if ($(p[i]).children("A").html() != null && $(p[i]).children("A").html() != "null") {
            ret += '<a href="'+$(p[i]).children("A").attr('href')+'" title="'+$(p[i]).children("A").attr('title')+'">'+($(p[i]).children("A").html())+"</a>&nbsp;&gt;&nbsp;";
        }    
    }
    return ret; 
}
/**
 * Opens the selected menu
 */
function openMenu(menuObjId, useHead, offsetleft, top) {
    //alert('openMenu('+menuObjId+', '+useHead+', '+offsetleft+', '+top+')');
    if (menuObjId == null) return;
    var mObject = $("#"+menuObjId);
    if (mObject == null) return;
    if (useHead == null) useHead = true;
    if (timer != null) {
        clearTimeout(timer);
        timer = null;
    }
    if (timerBreak != null) {
        clearTimeout(timerBreak);
        timerBreak = null;
    }
    $("#floatingMenuSub").empty();
    if (useHead) {
        $("#floatingMenuHead").removeClass('floatingMenuHeadEmpty');
        $("#floatingMenuHead").addClass('floatingMenuHead');
        $("#floatingMenuSub").removeClass('floatingMenuSubOnly');
        $("#floatingMenuHead").text($(mObject).text());
    } else {
        $("#floatingMenuHead").empty();
        $("#floatingMenuHead").removeClass('floatingMenuHead');
        $("#floatingMenuHead").addClass('floatingMenuHeadEmpty');
        $("#floatingMenuSub").addClass('floatingMenuSubOnly');
    }
    //
    var hw = $(mObject).width();
    if (offsetleft == null) {
        offsetleft = $("#tdleft").width();
        if (isIE) {
            if (document.body.offsetWidth < 970) {
                offsetleft = 0;
            }
        } else {
            if (window.innerWidth < 970) {
                offsetleft = 0;   
            }
        }
    }
    if (isSafari) {
        offsetleft = 0;
    }
    if (top == null) {
        top = 197;
    }
    var leftPos;
    var topPos;
    var p = $(mObject);
    var position = p.position();
    leftPos = position.left+offsetleft;
    leftPos += (isIE) ? 0 : 0;
    topPos = top;
    for(var i=0; i<menus[menuObjId].length; i++) {
        var label = (menus[menuObjId][i].label);
        var href = (menus[menuObjId][i].url);
        var appendString = '<div class="submenuitem';
        if (menus[menuObjId][i].active == true) {
            appendString += ' active" onmouseover="menuItemOver(this)">'+label+'</div>';
        } else {
            appendString += '" onmouseover="menuItemOver(this)"><a href="'+href+'" title="'+label+'">'+label+'</a></div>';
        }
        $("#floatingMenuSub").append(appendString);
    }
    //
    $("#floatingMenuHead").animate({width:hw},{duration:0});
    $("#floatingMenu").animate({top:topPos,left:leftPos},{duration:0});
    $("#floatingMenu").animate({opacity:1},{duration:defaultAnimDuration});
    //
    activeMenuObject = menuObjId;
}
function menuItemOver(obj) {
    if (timer != null) {
        clearTimeout(timer);
    }
    if (obj == undefined) return;
    if (timerBreak != null) {
        clearTimeout(timerBreak);
    }
    if ($(obj).is(".submenuitem")) {
        timerBreak = setTimeout("closeMenu()", defaultBreak);
    }
}
/**
 * Registers the menu mouse out event
 */
function menuItemMouseOut() {
    if (timer != null) {
        clearTimeout(timer);
    }
    if (timerBreak != null) {
        clearTimeout(timerBreak);
    }
    timer = setTimeout("closeMenu()", defaultAnimDuration);
}
/**
 * Closes the menu
 */
function closeMenu() {
    $("#floatingMenu").animate({opacity:0},defaultAnimDuration,'swing', closeMenuEvent);
    $("#floatingMenu").animate({top:0,left:0},{duration:0,queue:true});
    //
    clearTimeout(timer);
    clearTimeout(timerBreak);
    timer = null;
    timerBreak = null;
    activeMenuObject = null;
}
/**
 * Close menu event
 */
function closeMenuEvent() {
    if (menuInQueue != null) {
        activeMenuObject = null;
        openMenu(menuInQueue);
    }
}
