var bSizeInitialized = false; //Voor initialisatie van FF positie

var iDebugCounter = 0; //Counter voor debug procedure
var iMenuTimeOut = 1600; //Aantal miliseconden voor sluiten popup
var iMenuSlideTimeOut = 10; //Aantal miliseconden tussen open/sluit stappen
var iMenuSlideDelta = 25; //Aantal pixels verplaatsing

var iMenuClosed_Height = 24; //Hoogte van gesloten popup
var iMenuClosed_Top = 257; //X positie van gesloten popup

var iMenuOpen_Height = 265; //Hoogte van open popup
var iMenuOpen_Top = 16; //X positie van open popup

var oMenuTimer_Div1; //Timer popup 1
var oMenuTimer_Div1_Action; //Defineerd open/sluit actie van timer 1
var iMenuTimer_Div1_X = iMenuClosed_Top; //Initialiseerd huidige X positie van popup 1
var iMenuTimer_Div1_Y = iMenuClosed_Height; //Initialiseerd huidige hoogte van popup 1
var oMenuTimer_Div2; //Timer popup 2
var oMenuTimer_Div2_Action; //Defineerd open/sluit actie van timer 2
var iMenuTimer_Div2_X = iMenuClosed_Top; //Initialiseerd huidige X positie van popup 2
var iMenuTimer_Div2_Y = iMenuClosed_Height; //Initialiseerd huidige hoogte van popup 2
var oMenuTimer_Div3; //Timer popup 3
var oMenuTimer_Div3_Action; //Defineerd open/sluit actie van timer 3
var iMenuTimer_Div3_X = iMenuClosed_Top; //Initialiseerd huidige X positie van popup 3
var iMenuTimer_Div3_Y = iMenuClosed_Height; //Initialiseerd huidige hoogte van popup 3

//** Handling Functions **
function OpenMenu(aMenu,iTop) {
	if (!bSizeInitialized) {
		if (iTop) {
			if (navigator.appVersion.match('MSIE') != 'MSIE') {
				iMenuClosed_Top = 260;
				iMenuOpen_Top = 19;
			}
			bSizeInitialized = true;
		}
	}
	
	ClearMenuTimeOutHandler(aMenu);
	ClearMenuTimeOut(aMenu);
	OnMenuTimeOut_Open(aMenu);
	//** Close other Menu's
	switch(aMenu) {
		case "popup-folder":
			oMenuTimer_Div2_Action = setTimeout("OnMenuTimeOut_Close('popup-nieuws')",iMenuSlideTimeOut);
			oMenuTimer_Div3_Action = setTimeout("OnMenuTimeOut_Close('popup-acties')",iMenuSlideTimeOut);
			break;
		case "popup-nieuws":
			oMenuTimer_Div1_Action = setTimeout("OnMenuTimeOut_Close('popup-folder')",iMenuSlideTimeOut);
			oMenuTimer_Div3_Action = setTimeout("OnMenuTimeOut_Close('popup-acties')",iMenuSlideTimeOut);
			break;
		case "popup-acties":
			oMenuTimer_Div1_Action = setTimeout("OnMenuTimeOut_Close('popup-folder')",iMenuSlideTimeOut);
			oMenuTimer_Div2_Action = setTimeout("OnMenuTimeOut_Close('popup-nieuws')",iMenuSlideTimeOut);
			break;
	}
}
function SetMenuTimeOut(aMenu) {
	ClearMenuTimeOutHandler(aMenu);
	switch(aMenu) {
		case "popup-folder":
			oMenuTimer_Div1 = setTimeout("OnMenuCloseTimeOut('popup-folder')",iMenuTimeOut);
			break;
		case "popup-nieuws":
			oMenuTimer_Div2 = setTimeout("OnMenuCloseTimeOut('popup-nieuws')",iMenuTimeOut);
			break;
		case "popup-acties":
			oMenuTimer_Div3 = setTimeout("OnMenuCloseTimeOut('popup-acties')",iMenuTimeOut);
			break;
	}
}

function ClearMenuTimeOutHandler(aMenu) {
	switch(aMenu) {
		case "popup-folder":
			clearTimeout(oMenuTimer_Div1);
			break;
		case "popup-nieuws":
			clearTimeout(oMenuTimer_Div2);
			break;
		case "popup-acties":
			clearTimeout(oMenuTimer_Div3);
			break;
	}
}

function ClearMenuTimeOut(aMenu) {
	switch(aMenu) {
		case "popup-folder":
			clearTimeout(oMenuTimer_Div1_Action);
			break;
		case "popup-nieuws":
			clearTimeout(oMenuTimer_Div2_Action);
			break;
		case "popup-acties":
			clearTimeout(oMenuTimer_Div3_Action);
			break;
	}
}

//** Timer Events **
function OnMenuCloseTimeOut(aMenu) {
	switch(aMenu) {
		case "popup-folder":
			clearTimeout(oMenuTimer_Div1);
			oMenuTimer_Div1_Action = setTimeout("OnMenuTimeOut_Close('popup-folder')",iMenuSlideTimeOut);
			break;
		case "popup-nieuws":
			clearTimeout(oMenuTimer_Div2);
			oMenuTimer_Div2_Action = setTimeout("OnMenuTimeOut_Close('popup-nieuws')",iMenuSlideTimeOut);
			break;
		case "popup-acties":
			clearTimeout(oMenuTimer_Div3);
			oMenuTimer_Div3_Action = setTimeout("OnMenuTimeOut_Close('popup-acties')",iMenuSlideTimeOut);
			break;
	}
}

function OnMenuTimeOut_Open(aMenu) {
	ClearMenuTimeOut(aMenu);
	switch(aMenu) {
		case "popup-folder":
			if (OpenDivDisplay(aMenu) == true) {
				oMenuTimer_Div1_Action = setTimeout("OnMenuTimeOut_Open('popup-folder')",iMenuSlideTimeOut);
			}
			break;
		case "popup-nieuws":
			if (OpenDivDisplay(aMenu) == true) {
				oMenuTimer_Div2_Action = setTimeout("OnMenuTimeOut_Open('popup-nieuws')",iMenuSlideTimeOut);
			}
			break;
		case "popup-acties":
			if (OpenDivDisplay(aMenu) == true) {
				oMenuTimer_Div3_Action = setTimeout("OnMenuTimeOut_Open('popup-acties')",iMenuSlideTimeOut);
			}
			break;
	}
}
function OnMenuTimeOut_Close(aMenu) {
	switch(aMenu) {
		case "popup-folder":
			clearTimeout(oMenuTimer_Div1_Action);
			if (CloseDivDisplay(aMenu) == true) {
				oMenuTimer_Div1_Action = setTimeout("OnMenuTimeOut_Close('popup-folder')",iMenuSlideTimeOut);
			}
			break;
		case "popup-nieuws":
			clearTimeout(oMenuTimer_Div2_Action);
			if (CloseDivDisplay(aMenu) == true) {
				oMenuTimer_Div2_Action = setTimeout("OnMenuTimeOut_Close('popup-nieuws')",iMenuSlideTimeOut);
			}
			break;
		case "popup-acties":
			clearTimeout(oMenuTimer_Div3_Action);
			if (CloseDivDisplay(aMenu) == true) {
				oMenuTimer_Div3_Action = setTimeout("OnMenuTimeOut_Close('popup-acties')",iMenuSlideTimeOut);
			}
			break;
	}
}

//** Open / Close Functions **
function OpenDivDisplay(aMenu){
	//Defineer start variabelen
	var iCurrentTop = iMenuClosed_Top;
	var iCurrentHeight = iMenuClosed_Height;
	//Defineer variabelen vanaf popup-naam
	switch (aMenu) {
		case "popup-folder":
			iCurrentTop = iMenuTimer_Div1_X;
			iCurrentHeight = iMenuTimer_Div1_Y;
			break;
		case "popup-nieuws":
			iCurrentTop = iMenuTimer_Div2_X;
			iCurrentHeight = iMenuTimer_Div2_Y;
			break;
		case "popup-acties":
			iCurrentTop = iMenuTimer_Div3_X;
			iCurrentHeight = iMenuTimer_Div3_Y;
			break;
	}
	var bResult = false;
	
	//Localiseren popup-element
 	var lElement = document.getElementById(aMenu);
	if (lElement) {
		//Localiseren popup-element stijl
		var lStyle = lElement.style;
		if (lStyle) {
			//Zolang de huidige hoogte en positie de open positie nog niet bereikt heeft
			if ((iCurrentHeight < iMenuOpen_Height) && (iCurrentTop > iMenuOpen_Top)) {
				//Als het resultaat na de volgende actie stap kleine is dan de "open hoogte", doe dan die stap, anders zet "open hoogte"
				if ((iCurrentHeight + iMenuSlideDelta)  < iMenuOpen_Height) { iCurrentHeight= iCurrentHeight + iMenuSlideDelta; } else { iCurrentHeight= parseInt(iMenuOpen_Height); }
				//Als het resultaat na de volgende actie stap groter is dan de "open positie", doe dan die stap, anders zet "open positie"
				if ((iCurrentTop - iMenuSlideDelta) > iMenuOpen_Top) { iCurrentTop = iCurrentTop - iMenuSlideDelta; } else { iCurrentTop = parseInt(iMenuOpen_Top); }
				//Nieuwe positie toekennen aan popup-naam
				switch (aMenu) {
					case "popup-folder":
						iMenuTimer_Div1_X = iCurrentTop;
						iMenuTimer_Div1_Y = iCurrentHeight;
						break;
					case "popup-nieuws":
						iMenuTimer_Div2_X = iCurrentTop;
						iMenuTimer_Div2_Y = iCurrentHeight;
						break;
					case "popup-acties":
						iMenuTimer_Div3_X = iCurrentTop;
						iMenuTimer_Div3_Y = iCurrentHeight;
						break;
				}
				lStyle.top = iCurrentTop + 'px';
				lStyle.height = iCurrentHeight + 'px';
				bResult = true;
			}
		}
	}
	return bResult;
}

function CloseDivDisplay(aMenu){
	//Defineer start variabelen
	var iCurrentTop = iMenuClosed_Top;
	var iCurrentHeight = iMenuClosed_Height;
	//Defineer variabelen vanaf popup-naam
	switch (aMenu) {
		case "popup-folder":
			iCurrentTop = iMenuTimer_Div1_X;
			iCurrentHeight = iMenuTimer_Div1_Y;
			break;
		case "popup-nieuws":
			iCurrentTop = iMenuTimer_Div2_X;
			iCurrentHeight = iMenuTimer_Div2_Y;
			break;
		case "popup-acties":
			iCurrentTop = iMenuTimer_Div3_X;
			iCurrentHeight = iMenuTimer_Div3_Y;
			break;
	}
	var bResult = false;
	
	//Localiseren popup-element
 	var lElement = document.getElementById(aMenu);
	if (lElement) {
		//Localiseren popup-element stijl
		var lStyle = lElement.style;
		if (lStyle) {
			//Zolang de huidige hoogte en positie de gesloten positie nog niet bereikt heeft
			if ((iCurrentHeight > iMenuClosed_Height) && (iCurrentTop < iMenuClosed_Top)) {
				//Als het resultaat na de volgende actie stap groter is dan de "gesloten hoogte", doe dan die stap, anders zet "gesloten hoogte"
				if ((iCurrentHeight - iMenuSlideDelta)  > iMenuClosed_Height) { iCurrentHeight = (iCurrentHeight - iMenuSlideDelta); } else { iCurrentHeight= parseInt(iMenuClosed_Height); }
				//Als het resultaat na de volgende actie stap kleiner is dan de "gesloten positie", doe dan die stap, anders zet "gesloten positie"
				if ((iCurrentTop + iMenuSlideDelta) < iMenuClosed_Top) { iCurrentTop = parseInt(iCurrentTop + iMenuSlideDelta); } else { iCurrentTop = parseInt(iMenuClosed_Top); }
				//Nieuwe positie toekennen aan popup-naam
				switch (aMenu) {
					case "popup-folder":
						iMenuTimer_Div1_X = iCurrentTop;
						iMenuTimer_Div1_Y = iCurrentHeight;
						break;
					case "popup-nieuws":
						iMenuTimer_Div2_X = iCurrentTop;
						iMenuTimer_Div2_Y = iCurrentHeight;
						break;
					case "popup-acties":
						iMenuTimer_Div3_X = iCurrentTop;
						iMenuTimer_Div3_Y = iCurrentHeight;
						break;
				}
				lStyle.top = iCurrentTop + 'px';
				lStyle.height = iCurrentHeight + 'px';
				bResult = true;
			}
		}
	}
	return bResult;
}

/* Debug Declarations */
function debug(aValue) {
	var oText = document.getElementById("debug");
	if (oText) {
		iDebugCounter++;
		oText.value = iDebugCounter + ": " + aValue + "\r\n" + oText.value;
	}
} 