var openMenu="";
var animationScheduled= false;
var target="";
showMenu=function(t){
	target=t;
	animate();
//	if( !animationScheduled ){
//		animationScheduled= true;
//		setTimeout("animate()", 600);
//	}
}
animate=function(){
	//animationScheduled= false;
	if( target != openMenu ){//&& !menuAnimated){
		Effect.SlideDown(target, {duration:0.5});//, queue:'end'});
		if( openMenu != "" )
			Effect.SlideUp(openMenu, {duration:0.2});//, queue:'end'});
		menuAnimated= true;
		openMenu= target;
	}
}
allowAnimation=function(){
	menuAnimated= false;
}

hideLeftMenus= function(exceptCurrent){
	if( openMenu == "" || (exceptCurrent && document.getElementById(openMenu) == null) )
		exceptCurrent= false;

	//BUG FIX: Keep this first call for IE, seems that the function needs to run once.
	getElementsByClassName("menuLeft");

	var menus= getElementsByClassName("menu", "DIV", document.getElementById("menuLeft"));
	for( var i=0; i< menus.length; i++ ){
		//if(getElementsByClassName("menuLeftName"))
		var contents= getElementsByClassName("menuContent", "div", menus[i]);
		if( contents.length>0 ){
			if( exceptCurrent && contents[0].id == openMenu ){
				continue;
			}
//				continue;
//			Effect.SlideUp(contents[0], {duration:0.1});
			//hideMenu(contents[0]);
			else
//				hideMenu(contents[0]);
				contents[0].hide();

		}
	}
	if( !exceptCurrent )
		openMenu="";
}
hideMenu = function(element) {
	  element = $(element).cleanWhitespace();
	  var oldInnerBottom = element.down().getStyle('bottom');
	  var elementDimensions = element.getDimensions();
	  
	  element.makePositioned();
	  element.down().makePositioned();
	  if (window.opera) element.setStyle({top: ''});
	  element.makeClipping().show();
	  
      element.down().setStyle({bottom:
          (elementDimensions[0] - element.clientHeight) + 'px' });
//      (element.offsetHeight - element.clientHeight) + 'px' });
//
	  element.hide().undoClipping().undoPositioned();
//	  element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
}
