﻿var CLOSE_MENU_DELAY_MS = 250;
var FADEOUT_MENU_DELAY_MS = 50;
var FADEOUT_MENU_OPACITY_DELTA = 0.1;

var FADEIN_MENU_DELAY_MS = 20;
var FADEUN_MENU_OPACITY_DELTA = 0.2;

var submenu_IsMouseOut = false;
var submenu_outfader = null;
var submenu_infader = null;

function ShowSubmenuDelay()
{
    submenu_IsMouseOut = false;
    var wasFadingOut = FadeOutSubmenu_Interrupt();
    if($('submenu').visible() && !wasFadingOut) return;
    
    //$('submenu').setOpacity(0);
    $('submenu').show();
    $('submenu').setStyle({backgroundColor : 'white'});
    submenu_infader = setInterval(FadeInSubmenu, FADEIN_MENU_DELAY_MS);
}
function FadeInSubmenu()
{
    if($('submenu').getOpacity() == 1)
    {
        FadeInSubmenu_Interrupt();
    }
    var newOpacity = $('submenu').getOpacity() + FADEOUT_MENU_OPACITY_DELTA;
    $('submenu').setOpacity((newOpacity > 1) ? 1 : newOpacity);
}
function FadeInSubmenu_Interrupt()
{
    if(submenu_infader != null)
    {
        clearInterval(submenu_infader);
        submenu_infader = null;
        $('submenu').setStyle({backgroundColor : 'transparent'});
    }
}
function ShowSubmenu()
{
    //$('submenu').setOpacity(1);
}


function HideSubmenuDelay()
{
    submenu_IsMouseOut = true;
    setTimeout(HideSubmenu, CLOSE_MENU_DELAY_MS);
}

function HideSubmenu()
{
    if(!submenu_IsMouseOut) return;
    if(submenu_outfader != null) return;
    FadeInSubmenu_Interrupt();
    submenu_IsMouseOut = false;

    $('submenu').setStyle({backgroundColor : 'white'});
    submenu_outfader = setInterval(FadeOutSubmenu, FADEOUT_MENU_DELAY_MS);
//    $('submenu').hide();
}
function FadeOutSubmenu()
{
    if($('submenu').getOpacity() <= 0)
    {
        $('submenu').hide();
        FadeOutSubmenu_Interrupt();
    }
        
    $('submenu').setOpacity($('submenu').getOpacity() - FADEOUT_MENU_OPACITY_DELTA);
}
function FadeOutSubmenu_Interrupt()
{
    if(submenu_outfader != null)
    {
        clearInterval(submenu_outfader);
        submenu_outfader = null;
        $('submenu').setStyle({backgroundColor : 'transparent'});

        return true;
    }
    return false;
}

