﻿// JScript File

var seActiveMenu = -1; // Het active menu
var seNewActiveMenu = -1; // Het nieuwe active menu
var seMaxMenus = 0; // Het totaal aantal menu's
var seMenuInit = 0; // Is het menu geinitialiseerd
var seBaseName = ""; // Begin string van layer naam (is naam van ascx control_)
var seMenuWait = 0; // wachten voor we wat doen
var seAfdekLeft = 0; // Left van afdekvlak
var seAfdekLeftTo = 0; // Welke left moet het afdekvlak krijgen
var seAfdekBlend = 0; // Blend van afdekvlak
var seAfdekBlendTo = 0; // Welke blend moet het afdekvlak krijgen
var seLastTime = 0; // Waarde die de laatste time tick bevat om beweging tijds afhankelijk te maken
var seTimeSpeed = 0; // De tijd tussen 2 javascript runs

// Tik tak do het menu
function seMenuTimer()
{
    if (seMenuInit == 0) 
    {   // Haal de gegevens op uit de ascx info
        seMenuInit = 1;
        seMaxMenus = seFindMenuInfo("menuTel");
        seBaseName = seFindMenuInfo("baseName");
        
        // seDebugWriteLine("init menu", "seMenuTimer - seMaxMenus: " + seMaxMenus + " - seBaseName: " + seBaseName);
    }
    
    var nu = new Date(); 
    // seDebugWriteVar(2, seMenuWait < nu.getTime(), "seShowMenu tijd");
    
    seTimeSpeed = nu.getTime() - seLastTime;
    //seDebugWriteVar(1, seTimeSpeed, "seShowMenu seTimeSpeed");
    
    if (seMenuWait < nu.getTime()) {
    
        if (seActiveMenu != seNewActiveMenu) {
    
            seActiveMenu = seNewActiveMenu;
        
            // Doorloop menu's en hide
            for(i=0; i<=seMaxMenus; i++) {
               MM_showHideLayers(seBaseName + i,'','hide'); 
               MM_showHideLayers(seBaseName + "Bull" + i,'','hide'); 
            }
            
            if (seActiveMenu != -1) {
                // Bepaal de nieuwe left van afdek vlak
                if (seActiveMenu > 9) {
                   seAfdekLeftTo = 600;
                }
                else if (seActiveMenu > 5) {
                   seAfdekLeftTo = 300;
                } else {
                   seAfdekLeftTo = 0;
                }
            }
    
            if (seActiveMenu > 0) {
                // Toon active layer
                MM_showHideLayers(seBaseName + seActiveMenu,'','show');
                MM_showHideLayers(seBaseName + "Bull" + seActiveMenu,'','show'); 
                MM_showHideLayers("menuAfdek",'','show'); 
                seAfdekBlendTo = 100;
            } else {
                //MM_showHideLayers("menuAfdek",'','hide'); 
                seAfdekBlendTo = 0;
            }
        }
    
    }
    
    if (seAfdekLeft != seAfdekLeftTo) {
        // Beweeg afdekvlak soepel naar nieuwe plek
        seAfdekLeft  = seAfdekLeft  + (seAfdekLeftTo - seAfdekLeft )/(3);
        if (Math.abs(seAfdekLeftTo - seAfdekLeft) < 2) {seAfdekLeft = seAfdekLeftTo}
        Z_Menu_moveDivLeft("menuAfdek", seAfdekLeft);
    }
    
    if (seAfdekBlend != seAfdekBlendTo) {
        // Beweeg afdekvlak soepel naar nieuwe plek
        seAfdekBlend  = seAfdekBlend  + (seAfdekBlendTo - seAfdekBlend )/(5);
        if (Math.abs(seAfdekBlendTo - seAfdekBlend) < 2) {
            seAfdekBlend = seAfdekBlendTo
            if (seAfdekBlend < 5) 
            {
                MM_showHideLayers("menuAfdek",'','hide'); 
            }
        }
        Z_ChangeOpac("menuAfdek", seAfdekBlend);
    }
    
    seLastTime = nu.getTime();
    // seDebugWriteVar(1, seActiveMenu, "seShowMenu");

    setTimeout("seMenuTimer()", 30); 
}

// Wachten tot dat de seMenuInfo er is
// dan hem menu starten
function seMenuStarter() {
    if (typeof seMenuInfo != 'undefined') {
        seMenuTimer();
    } else {
        setTimeout("seMenuStarter()", 100); 
    }
}

// Open het menu
function seShowMenu(menuNr)
{       
    // seDebugWriteLine(menuNr, "seShowMenu");
    
    var nu = new Date();
    seMenuWait = nu.getTime() + 180;
    seNewActiveMenu = menuNr;

    if (seAfdekBlend < 15) {
        // Als afdek veld onzichtbaar
        // dan meteen op juist plek zetten
        if (seActiveMenu > 9) {
           seAfdekLeftTo = 600;
           seAfdekLeft = 300;
        }
        else if (seActiveMenu > 5) {
           seAfdekLeftTo = 300;
           seAfdekLeft = 300;
        } else {
           seAfdekLeftTo = 0;
           seAfdekLeft = 0;
        }
        Z_Menu_moveDivLeft("menuAfdek", seAfdekLeft);
    }
}

// Sluit he menu
function seHideMenu(menuNr)
{
    // seDebugWriteLine(menuNr, "seHideMenu");
    
    // Wachten tot x ticks na nu
    var nu = new Date();
    seMenuWait = nu.getTime() + 300;
    
    seNewActiveMenu = -1;

}

// Zoek menu info uit de lijst die doorgegeven is door de ascx
// seMenuInfo bevat een lijst met telkens een key en een value
// de Array moet de volgende structuur hebben 
// ['key1', value1], ['key2', value2], enz
function seFindMenuInfo(what) {
    for(i=0;i<seMenuInfo.length;i++) {
        if (seMenuInfo[i][0] == what) {
            return seMenuInfo[i][1];
        }
    }
    return "";
}
