//////////////////////////////////////////////////////////////
// -- [ BXDROPMENU v1.0 ] --------------------------- //
//////////////////////////////////////////////////////////////

var menusReady = false;
var openingTimer;
var closingTimer;

// Global array initialization --------------------------------------- // 
var BXDM = new Array(5); 

BXDM[0] = new Array(10);
BXDM[1] = new Array(10);
BXDM[2] = new Array(10);
BXDM[3] = new Array(10);
BXDM[4] = new Array(10);
BXDM[5] = new Array(10);
BXDM[6] = new Array(10);
// BXDM[x] = new Array(10);  "x" must be adjusted according to the number of panels in the page
// --------------------------------- // 

function init(idx, menuID, openingDirection){ 							

 // BXDM[idx][1] = Object initialization (getElementById)
 // BXDM[idx][2] = Menu original width
 // BXDM[idx][3] = Menu original height
 // BXDM[idx][4] = Opening direction (vertical / horizontal)
 // BXDM[idx][5] = Requested action (open / close / stop)
 // BXDM[idx][6] = Memorize the menu index (idx)
 // BXDM[idx][7] = Closing delay (milliseconds)
 // BXDM[idx][8] = Actual dimension
 // BXDM[idx][9] = New dimension
 // BXDM[idx][10] = Resizing Step
	
	BXDM[idx][1] = document.getElementById(menuID);
	BXDM[idx][2] = BXDM[idx][1].offsetWidth;
	BXDM[idx][3] = BXDM[idx][1].offsetHeight;
	BXDM[idx][4] = openingDirection;
	BXDM[idx][5] = "stop";
	BXDM[idx][6]= idx;
	BXDM[idx][7]= 100;
	BXDM[idx][8]= "";
	BXDM[idx][9]= "";
	
	BXDM[idx][1].style.width = '0px';
	BXDM[idx][1].style.height = '0px';
	BXDM[idx][1].style.display = 'none';
	BXDM[idx][1].style.visibility = 'visible';
}

function openMenu(idx){
	
	if(menusReady){
		
		BXDM[idx][1].style.display = "block";
		BXDM[idx][5] = "open";
		if(BXDM[idx][4] == "horizontal"){
			if (BXDM[idx][1].style.width == '0px'){
				gradualOpen(idx);
			}
		}else{
			if (BXDM[idx][1].style.height == '0px'){
				gradualOpen(idx);
			}
		}
	}
}

function gradualOpen(idx) {
	
	if(menusReady){
	
		if(BXDM[idx][4] == "horizontal"){
			
			if (BXDM[idx][1].style.width != BXDM[idx][2]){	
				BXDM[idx][8] = BXDM[idx][1].style.width;
				BXDM[idx][8] = parseFloat(BXDM[idx][8].substring(0,4));
				
				if(BXDM[idx][8] < BXDM[idx][2]){
					
					BXDM[idx][10] = parseFloat((BXDM[idx][2] - BXDM[idx][8]) / 10)+1;
					BXDM[idx][1].style.width = parseFloat((BXDM[idx][8] + BXDM[idx][10])) + 'px';
					BXDM[idx][1].style.height = BXDM[idx][3] + 'px';
					BXDM[idx][9] = BXDM[idx][1].style.width;
					BXDM[idx][9] = parseFloat(BXDM[idx][9].substring(0,4));
					
					if(BXDM[idx][9] >= BXDM[idx][2]){
						BXDM[idx][1].style.width = BXDM[idx][2]; + 'px'
					}else{
						openingTimer = setTimeout('gradualOpen('+idx+')',2);	
					}
					
				}else{
					BXDM[idx][1].style.width = BXDM[idx][2] + 'px';
					BXDM[idx][1].style.height = BXDM[idx][3] + 'px';
					BXDM[idx][5] = "stop";
					clearTimeout(openingTimer);
				}
			}
			
		}else{
			if (BXDM[idx][1].style.height != (BXDM[idx][3] + 'px')){
				BXDM[idx][8] = BXDM[idx][1].style.height;
				BXDM[idx][8] = parseFloat(BXDM[idx][8].substring(0,4));
				
				if(BXDM[idx][8] < BXDM[idx][3]){
	
					BXDM[idx][10] = parseFloat((BXDM[idx][3] - BXDM[idx][8]) / 10)+1;
					BXDM[idx][1].style.height = parseFloat((BXDM[idx][8] + BXDM[idx][10])) + 'px';
					BXDM[idx][1].style.width = BXDM[idx][2] + 'px';
					BXDM[idx][9] = BXDM[idx][1].style.height;
					BXDM[idx][9] = parseFloat(BXDM[idx][9].substring(0,4));
					
					if(BXDM[idx][9] >= BXDM[idx][3]){
						BXDM[idx][1].style.height = BXDM[idx][3]; + 'px'
					}else{
						openingTimer = setTimeout('gradualOpen('+idx+')',2);	
					}
					
				}else{
					BXDM[idx][1].style.height = BXDM[idx][3] + 'px';
					BXDM[idx][1].style.width = BXDM[idx][2] + 'px';
					BXDM[idx][5] = "stop";
					clearTimeout(openingTimer);
				}
			}
	
		}	
	}
}

function closeMenu(idx,timerValue){
	
	if(menusReady){
	
		if(timerValue){
			if(BXDM[idx][5] == "close"){
				if(BXDM[idx][4] == "horizontal"){
					BXDM[idx][1].style.width = '0px';
					BXDM[idx][5] = "stop";
					BXDM[idx][1].style.display = "none";
				}else{
					BXDM[idx][1].style.height = '0px';	
					BXDM[idx][5] = "stop";
					BXDM[idx][1].style.display = "none";
				}
			}
		}else{
			BXDM[idx][5] = "close";
			closingTimer = setTimeout('closeMenu('+idx+',1)',BXDM[idx][7]);
		}
	}
}


/* MENUS INITIALISATION (body > onload) */
function initMenus(){
    init(0, 'menu0', 'vertical');
	init(1, 'menu1', 'vertical');
	init(2, 'menu2', 'vertical');
	init(3, 'menu3', 'vertical');
	init(4, 'menu4', 'vertical');
	init(5, 'menu5', 'vertical');
	init(6, 'menu6', 'vertical');
	
	
	menusReady = true;
}
////////////////////////////////////////////////////////
