﻿// JScript File

var menuWidth = 54;
var timeOut = -1;
var previousCategory;
var hoveredSubMenuItem;
var timer;

//*************************************
// Finds real offsetLeft of an element
//*************************************
function findPosX(obj) 
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

//*************************************
// Finds real offsetTop of an element
//*************************************
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

//*************************************
// Shows the submenu of a given category
//*************************************
function showSubMenu(category)
{
    //chosen category not changed =>
    //if (previousCategory == category)
    //    return;

    //hide previous submenu
    
    if (previousCategory != null)
    {
        hideSubMenu();
    }

    //find selected submenu
    var submenu;
    submenu = document.getElementById("SubMenu_" + category);
    
    if (submenu != null)
    {
        //show submenu
        submenu.style.display = 'block';
          
        //find selected menu    
        var menu;
        menu = document.getElementById("Menu_" + category);
        
        if (menu != null)
        {
            //move submenu to position based on menu
            submenu.style.position = 'absolute';
            //hide menuimage and replace with hover version
            var hoverMenu;
            hoverMenu = document.getElementById("MenuHover_" + category);

            if (hoverMenu != null)
            {
                menu.style.display = 'none';
                hoverMenu.style.display = 'block';
             }    
         }              
    }    
      
    //remember visible menu and set timer to auto-hide the submenu after a few seconds
    previousCategory = category;  
    
    setTimer();
    
}

//*************************************
// Hides the currently visible submenu
//*************************************
function hideSubMenu()
{
      
    //hide previous hovered submenuitem
    if (hoveredSubMenuItem != null)
    {
        unHoverSubMenuItem();
    }
    
    //find selected submenu
    var submenu; 
    submenu = document.getElementById("SubMenu_" + previousCategory);
    
    //hide submenu
    if (submenu != null)
    {
        submenu.style.display = 'none';
    }
        
    //find selected menu    
    var menu;
    menu = document.getElementById("Menu_" + previousCategory);

    if (menu != null)
    {              
        //hide hover version and show regular version
        var hoverMenu;
        hoverMenu = document.getElementById("MenuHover_" + previousCategory);

        if (hoverMenu != null)
        {
            menu.style.display = 'block';
            hoverMenu.style.display = 'none';
        }     
     }
 
}

//*************************************
// Shows the hover div of a hovered
// submenu item
//*************************************
function hoverSubMenuItem(category)
{

    //hide previous hovered submenuitem
    if (hoveredSubMenuItem != null)
    {
        unHoverSubMenuItem();
    }
     
   //find submenuitem   
    var subMenuItem;
    subMenuItem = document.getElementById("SubMenuItem_" + category);

    if (subMenuItem != null)
    { 
       //find hover submenuitem
        var subMenuItemHover;
        subMenuItemHover = document.getElementById("SubMenuItemHover_" + category);
        
        if (subMenuItemHover != null)
        {    
            //switch visiblity
            subMenuItem.style.display = 'none';
            subMenuItemHover.style.display = 'block';
             
            hoveredSubMenuItem = category;
        }              
    }   
    
    setTimer();    
}

//*************************************
// Shows the normal div of the
// previous hovered submenu item
//*************************************
function unHoverSubMenuItem()
{


    //find selected submenuitem
    var subMenuItemHover;
    subMenuItemHover = document.getElementById("SubMenuItemHover_" + hoveredSubMenuItem);
    
    if (subMenuItemHover != null)
    {         
       //find submenuitem   
        var subMenuItem;
        subMenuItem = document.getElementById("SubMenuItem_" + hoveredSubMenuItem);

        if (subMenuItem != null)
        { 
            //switch visiblity
            subMenuItemHover.style.display = 'none';
            subMenuItem.style.display = 'block';
        }              
    }       
}

//*************************************
// Resets the timer that hides the
// submenu after given timeout
//*************************************

function setTimer()
{
    if (timeOut > 0)
    {
        clearTimeout(timer);
        timer = setTimeout('hideSubMenu()', timeOut);
    }
}

//****************************************************************************************
// If the menu Div triggers a mouse out and the mouse isn't over one of the child elements
//  => hide submenu
//****************************************************************************************
function menuDivMouseOut(evt)
{
    evt = (evt) ? evt : (window.event) ? window.event : ""; 
    var curElt = evt.toElement;  
    
    //If curElt isn't found, try this (NS,Firefox)
    if (curElt == null)
        curElt = evt.relatedTarget;
      
    //If curElt is found, traverse parents to see if it's part of the menuDiv  
    if (curElt != null)
    {
  	    var parent = curElt.parentNode;
      	
	    while (parent != null)
	    {
		    if (parent.id == 'menuDiv')
		        return;
    		    
		    parent = parent.parentNode;
	    }
	 }
    	
    hideSubMenu();
    
}

//***********************************************************************
//functie om alleen maar numerieke waardes toe te laten in een tekstveld
//***********************************************************************
 function checkValue(e){
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	
	keychar = String.fromCharCode(keynum);
	numcheck = /[^1-5]/;
	return !numcheck.test(keychar);
}