﻿String.prototype.trim = function () { return this.replace(/^\s+|\s+$/, ''); };

var menuOpen = false;
var menuGoToOpen = false;
var menuMoving = false;
var menuTimer;
var menuForceOpen = false;
var menuWait = 0;
var menuActive = false;
var menuMouseStartX = 0;
var menuMouseStartY = 0;

$(document).ready(function () {
    $('#menuMain').mouseover(function () {
       enOpenCloseMenu(true, true);
    });

    $('.mainMenuLink').mouseover(function () {
        var menuNr = $(this).attr("id").replace("MainMenu", "");
        enHiSubMenu(menuNr);
    });

     $('.mainMenuLinkHi').mouseover(function () {
        var menuNr = $(this).attr("id").replace("MainMenu", "");
        enHiSubMenu(menuNr);
    });

    //$('#prjmainMenu').mouseover(function () {
    //   enOpenCloseMenu(true, true);
    //});

    $('#menuMain').click(function () {
        enOpenCloseMenu(true, false);
    });

    $('#prjmainMenu').click(function () {
        enOpenCloseMenu(true, false);
    });

    //    $('#menuHolder').mouseout(function () {
    //        enOpenCloseMenu(false, true);
    //    });

    $('.menuBack').click(function () {
        prjsubmenuhide();
        enOpenCloseMenu(false, true);
    });

    //teksttemplates hebben nog een absolute overflow div, in dat geval het menu ook laten reageren op een click
    $('#hideoverflowdiv').click(function () {
        prjsubmenuhide();
        enOpenCloseMenu(false, true);
    });

    $(document).mousemove(function (e) { enMouseMove(e); });

    menuTimer = setTimeout('enOpenCloseMenuTime()', 100);

    $('.menuBack').stop().fadeTo(5, 0, function () {
        $('.menuBack').hide();
    });
});

function enMouseMove(e) {
    if (menuMouseStartX == 0 && menuMouseStartY == 0) {
        menuMouseStartX = e.pageX;
        menuMouseStartY = e.pageY;
    } else {
        if ((Math.abs(menuMouseStartX - e.pageX) > 50 || Math.abs(menuMouseStartY - e.pageY) > 50) && !menuActive)
        menuActive = true;
    }
}

function enOpenOnLoad() {
    enOpenCloseMenu(true);
}

function enHiSubMenu(menuNr) {
    for (var i = 0; i < 10; i++) {
        $('#SubMenu' + i).stop().animate({backgroundColor: "#000"}, 250);
    }

    $('#SubMenu' + menuNr).stop().animate({
        backgroundColor: "#c11717"}, 50);
}

function enDoOpenCloseMenu(open) {
    if (open) {
        
        // Menu openen
        menuOpen = true;
        menuMoving = true;

        $('.menuBack').show().stop().fadeTo(500, 0.8);
        $('#menuActiveSubItems').hide().stop();

        $('#projectTitelOmvat').stop().animate({
            marginTop: 155
        }, 400);

        $('#pnlPrjLnks').stop().animate({
            top: 155
        }, 400);

        $('#menuMain').stop().animate({
            height: 310
        }, 400, function () {

        });

        $('#menuHolderShadow').stop().animate({
            height: 358
        }, 400);

        $('#menuLogoUp').stop().animate({
            height: 142
        }, 700);

        $('#menuLogoLow').stop().animate({
            height: 168
        }, 800, function () {
            menuMoving = false;
        });

        $('#menuSub').stop().animate({
            width: 600
        }, 400);
    } else {
        // Menu sluiten
        menuOpen = false;
        menuMoving = true;


        $('.menuBack').stop().fadeTo(500, 0, function () {
            $('.menuBack').hide();
        });

        $('#menuMain').stop().animate({
            height: 155
        }, 500, function () {
            // Animation complete.
            $('#menuActiveSubItems').show().stop().fadeTo(200, 1.0);
        });

        $('#pnlPrjLnks').stop().animate({
            top: 0
        }, 400);


        $('#projectTitelOmvat').stop().animate({
            marginTop: 0
        }, 400);

        $('#menuHolderShadow').stop().animate({
            height: 203
        }, 400);

        $('#menuLogoUp').stop().animate({
            height: 32
        }, 250);

        $('#menuLogoLow').stop().animate({
            height: 26
        }, 300);

        $('#menuSub').stop().animate({
            width: 1
        }, 600, function () {
            menuMoving = false;
        });
    }
}

function enOpenCloseMenuTime() {
    if (menuWait < 0) {
        if (menuGoToOpen != menuOpen) {
            enDoOpenCloseMenu(menuGoToOpen);
        }
        menuWait = 0;
    }
    menuWait--;
    menuTimer = clearTimeout(menuTimer);
    menuTimer = setTimeout('enOpenCloseMenuTime()', 100);
}

function enOpenCloseMenu(open, mouseMove) {
    menuWait = 10000000000000;
    if (open) {
        if (mouseMove) {
            if (menuActive) menuWait = 3;
        }
        else {
            menuWait = 0; 
        }
    } else {
        if (mouseMove && menuActive) menuWait = 0;
    }

    //if (!menuOpen && !menuMoving) enDoOpenCloseMenu(open);
    menuGoToOpen = open;
}

function enGoHome() {
    window.location = "/";
}

function prjsubmenuhide() {
    var subMenu = $(".prjSubMenu");
    subMenu.animate({ height: 0 }, 350, function () {
        $(this).css({ 'display': 'none', 'height': 'auto' });
    });
    
    $('.menuBack').stop().fadeTo(500, 0, function () {
        $('.menuBack').hide();
    });
    
}
