﻿var curTimer;

$('#menu').ready(function() {
    // Challenges menu events
    $('#challenges').hover(showChallengesMenu, beginHideChallengesMenu);
    $('#challengesItems').hover(cancelTimer, beginHideChallengesMenu);

    // Behaviors menu events
    $('#behavior').hover(showBehaviorsMenu, beginHideBehaviorsMenu);
    $('#behaviorItems').hover(cancelTimer, beginHideBehaviorsMenu);

    // Results menu events
    $('#results').hover(showResultsMenu, beginHideResultsMenu);
    $('#resultsItems').hover(cancelTimer, beginHideResultsMenu);
});

function showChallengesMenu() {
    cancelTimer();
    if($('#challenges div.menuItems').is(':visible'))
        return;

    hideBehaviorsMenu();
    hideResultsMenu();

    $('#challenges div.menuItems').show('slide', { direction: 'up' }, 'slow');
   
    return false;
}

function beginHideChallengesMenu() {
    cancelTimer();
    curTimer = window.setTimeout(hideChallengesMenu, 500);
    return false;
}

function hideChallengesMenu() {
    cancelTimer();
    if(!$('#challenges div.menuItems').is(':visible'))
        return;

    $('#challenges div.menuItems').hide('slide', { direction: 'up' }, 'fast');
}

function showBehaviorsMenu() {
    cancelTimer();
    if($('#behavior div.menuItems').is(':visible'))
        return;

    hideChallengesMenu();
    hideResultsMenu();

    $('#behavior div.menuItems').show('slide', { direction: 'up' }, 'slow');

    return false;
}

function beginHideBehaviorsMenu() {
    cancelTimer();
    curTimer = window.setTimeout(hideBehaviorsMenu, 500);
    return false;
}

function hideBehaviorsMenu() {
    cancelTimer();
    if(!$('#behavior div.menuItems').is(':visible'))
        return;

    $('#behavior div.menuItems').hide('slide', { direction: 'up' }, 'fast');
}

function showResultsMenu() {
    cancelTimer();
    if($('#results div.menuItems').is(':visible'))
        return;

    hideChallengesMenu();
    hideBehaviorsMenu();

    $('#results div.menuItems').show('slide', { direction: 'up' }, 'slow');

    return false;
}

function beginHideResultsMenu() {
    cancelTimer();
    curTimer = window.setTimeout(hideResultsMenu, 500);
    return false;
}

function hideResultsMenu() {
    cancelTimer();
    if(!$('#results div.menuItems').is(':visible'))
        return;

    $('#results div.menuItems').hide('slide', { direction: 'up' }, 'fast');
}

function cancelTimer() {
    window.clearTimeout(curTimer);
    return false;
}