﻿var isSlidingUp = false, isSlidingDown = false;

function openMenu(divName)
{
	new Effect_SlideDown(divName);
	
	
	//new Effect.toggle(divName,'appear',{delay:1});	
};
//function pour fermer Menu et changer le style
function closeMenu(divName)
{
		
		new Effect_SlideUp(divName);
		var elt = document.getElementById('menuItem_' + divName);
		if (elt)
		{
			elt.className="mainMenu";
		}
		
		var eltt = document.getElementById('sousmenuItem_' + lastSousOpened);
	if (eltt)
	{
		eltt.className="SousMenu";
	}
	var elttt = document.getElementById('pageItem_' + lastpageOpened);
	if (elttt)
	{
		elttt.className="SousMenu";
	}
	
	var eltttt = document.getElementById('InfoItem_' + lastInfosOpened);
	if (eltttt)
	{
		eltttt.className="SousMenu";
	}
		
		
		//new Effect.toggle(divName,'appear',{delay:1});
	};
	
var lastOpened = null;
var lastSousOpened = null;
var lastpageOpened = null;
var lastInfosOpened = null;

function showMenu(divName){
	if (isSlidingUp || isSlidingDown)
	{
		return;
	}

	
	// ouvre Menu
	if (lastOpened == null || lastOpened != divName)
	openMenu(divName);
	// si il y a deja un menu ouvert on le ferme
	if (lastOpened != null && lastOpened != divName )
	{
	 closeMenu(lastOpened);
	if (lastSousOpened != null)
		{
		 closeMenu(lastSousOpened);
	     lastSousOpened = null;
	}
	}
	// conserve le dernier menu ouvert
	lastOpened = divName;
	var elt = document.getElementById('menuItem_' + divName);
	if (elt)
	{
		elt.className="mainMenu active2";
	}
	var index = document.getElementById('menuItem_index');
		if (index)
		{
			index.className="mainMenu";
		}
		
	var liens = document.getElementById('menuItem_liens');
		if (liens)
		{
			liens.className="mainMenu";
		}	

}


function showSousMenu(divName){
	if (isSlidingUp || isSlidingDown)
	{
		return;
	}
	
	// ouvre Menu
	if (lastSousOpened == null || lastSousOpened != divName)
	openMenu(divName);
	// si il y a deja un menu ouvert on le ferme
	if (lastSousOpened != null && lastSousOpened != divName)
	closeMenu(lastSousOpened);
	// conserve le dernier menu ouvert
	lastSousOpened = divName;
	
	var elts = document.getElementById('sousmenuItem_' + divName);
	if (elts)
	{
		elts.className="SousMenu active";
	}
	
	
}

function showpage(divName){
	if (isSlidingUp || isSlidingDown)
	{
		return;
	}
	
	// ouvre Menu
	if (lastpageOpened == null || lastpageOpened != divName)
	openMenu(divName);
	// si il y a deja un menu ouvert on le ferme
	if (lastpageOpened != null && lastpageOpened != divName )
	{
	 closeMenu(lastpageOpened);
	if (lastInfosOpened != null)
		{
		 closeMenu(lastInfosOpened);
	     lastInfosOpened = null;
	}
	}
		// conserve le dernier menu ouvert
	lastpageOpened = divName;
	
	var elts = document.getElementById('pageItem_' + divName);
	if (elts)
	{
		elts.className="SousMenu active";
	}
	
	
}
	
function showInfos(divName){
	if (isSlidingUp || isSlidingDown)
	{
		return;
	}
	
	// ouvre Menu
	if (lastInfosOpened == null || lastInfosOpened != divName)
	openMenu(divName);
	// si il y a deja un menu ouvert on le ferme
	if (lastInfosOpened != null && lastInfosOpened != divName)
	closeMenu(lastInfosOpened);
	// conserve le dernier menu ouvert
	lastInfosOpened = divName;
	
	var elts = document.getElementById('InfoItem_' + divName);
	if (elts)
	{
		elts.className="SousMenu active";
	}
	
	
}	
function Effect_SlideDown(element) {
	isSlidingDown = true;	
  element = $(element).cleanWhitespace();
  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
  var oldInnerBottom = element.down().getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({ 
    scaleContent: false, 
    scaleX: false, 
    scaleFrom: window.opera ? 0 : 1,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if(window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
    },
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping().undoPositioned();
      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
	  isSlidingDown = false;}
    }, arguments[1] || {})
  );
}

function Effect_SlideUp(element) {
	isSlidingUp = true;	
  element = $(element).cleanWhitespace();
  var oldInnerBottom = element.down().getStyle('bottom');
  return new Effect.Scale(element, window.opera ? 0 : 1,
   Object.extend({ scaleContent: false, 
    scaleX: false, 
    scaleMode: 'box',
    scaleFrom: 100,
    restoreAfterFinish: true,
    beforeStartInternal: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if(window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().show();
    },  
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    },
    afterFinishInternal: function(effect) {
      effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom});
      effect.element.down().undoPositioned();
	  isSlidingUp = false;	
    }
   }, arguments[1] || {})
  );
}
