/* Deze functies zorgen voor het controleren van het menu 
 *
 * Uses: DHTML_API.js
 * Uses: findPosition.js
 */

var checkIt;
var rolluit;
var rows;
var menuItems = 2; /* Instellen hoeveel menuitems er zijn */

function showMenu(menunr) {
	//closeAll();
	userInput();		
	rolMenuUit(menunr);
}

function userInput() {	
	if (checkIt) clearTimeout(checkIt);
	if (rolluit) clearTimeout(rolluit);
	checkIt = setTimeout('closeAll(1)', 5000);
}

function closeAll() {
	for (var i=1; i <=menuItems; i++) {
		var menuObj = new getObj('menu' + i + '_sub');			
		menuObj.style.display = 'none';
		
		/* Alle a's onzichtbaar maken om ze straks zichtbaar te maken met een fade.
		 * Deze fade werkt met een DLL specifiek voor IE, en zorgt ervoor dat de oude inhoud 
		 * van een element wordt gefaded naar de nieuwe inhoud van een element. In dit geval 
		 * is de oude inhoud dus de onzichtbare a's en de nieuwe inhoud de zichtbare a's.
		 */
		var rows = getRows(i);
		for (var j=0; j < rows.length; j++) {
			rows[j].style.visibility = 'hidden';		
		} 
	}
}

function rolMenuUit(menunr,x,y) {
	var x = 0;
	var y = 0;
	if (document.getElementById) {			
		if (mouseX && mouseY)
		{
			// mouse position is not (0,0)
			x = mouseX-5;
			y = mouseY-10;
		}
		else
		{
			x = findPosX(document.getElementById('menu' + menunr)) - 5;
			y = findPosY(document.getElementById('menu' + menunr)) + 17;		
		}
		var menuObj = new getObj('menu' + menunr + '_sub');
		
		menuObj.style.left		= x + 'px';
		menuObj.style.top		= y + 'px';
		menuObj.style.height	= '0';
		menuObj.style.overflow	= 'hidden'; /* clip werkt niet in Mozilla, dus vandaar deze constructie met overflow en height*/
		menuObj.style.display	= 'block';
		menuObj.style.filter	= 'progid:DXImageTransform.Microsoft.Fade(duration=0.5)';
		
		// Alle a's zichtbaar maken met een fade (fade werkt alleen in IE)
		try { menuObj.obj.filters[0].Apply(); } catch (error) {	/* Het kan zijn dat deze DLL niet is geregistreerd, of niet bestaat */}
		var rows = getRows(menunr);
		for (var j=0; j < rows.length; j++) {
			rows[j].style.visibility = 'visible';		
		}
		try { menuObj.obj.filters[0].Play(); } catch (error) {	/* Het kan zijn dat deze DLL niet is geregistreerd, of niet bestaat */}
		
		showRow(0, menunr, getRows(menunr).length * 20);
	}
}

function showRow(currentPercentage, menunr, hoogte) {
	if (currentPercentage < 100) {
		currentPercentage		= currentPercentage + 5;
		var menuObj				= new getObj('menu' + menunr + '_sub');
		menuObj.style.height	= Math.round((currentPercentage / 100 ) * hoogte) + 'px';
		rolluit					= setTimeout('showRow(' + currentPercentage + ', ' + menunr + ', ' + hoogte + ')', 20);	
	}
}

function getRows(menunr) {
	return document.getElementById('menu' + menunr + '_sub').getElementsByTagName('a')
}
