//////////////////////////////////////////////////////////////
// -- [ BXDROPMENU v1.0 ] --------------------------- //
//////////////////////////////////////////////////////////////

// Global array initialization --------------------------------------- // 
var BXDM = new Array(4); 
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[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]= 800;
	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){
	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(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]){	
			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(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('+BXDM[idx][6]+',1)',BXDM[idx][7]);
	}
}

////////////////////////////////////////////////////////