
jQuery.noConflict();

var timermenus=null;


function initMenus() {
	initMenuAccordion();
	initMenuRollup();
}


function initMenuRollup () {
	jQuery.each(jQuery('div.menu_rollup'), function(){
	
		//On enleve l'option de class CSS nojavascript car javascript forcément activé
		if (jQuery(this).hasClass('nojavascript')) {
			jQuery(this).removeClass('nojavascript');
		}
								
	});


//On cache tous les sous menus des menus rollup de la page
	jQuery('div.menu_rollup ul').hide();
	
	
	//définition du comportement (click ou mouseover  pour ouverture) pour chacun des menus accordion
	
	jQuery.each(jQuery('div.menu_rollup > div > a'), function(){
		var parent = this.parentNode.parentNode;
					
			if (parent) {
				
				if	(jQuery(parent).hasClass('rollover')) {
					jQuery(this).mouseover(onSelectMenu);
				} else {
					if (jQuery(this).attr("href")==null || jQuery(this).attr("href")=="#") {
						jQuery(this).click(onSelectMenu);
					}
					
				}
			}
			
		
	});
	
	//jQuery('div.menu_rollup div').mouseout(onLeaveMenu);
	jQuery('body').click(LeaveMenu);
	
	jQuery('div.menu_rollup').mouseout(WaitForLeaveMenu);
	jQuery('div.menu_rollup ul').mouseout(WaitForLeaveMenu);
	jQuery('div.menu_rollup a').mouseover(StopForLeaveMenu);
	
}

function initMenuAccordion() {
	jQuery.each(jQuery('ul.accordion_menu'), function(){
		//On enleve l'option de class CSS nojavascript car javascript forcément activé
		if (jQuery(this).hasClass('nojavascript')) {
			jQuery(this).removeClass('nojavascript');
		}
				
	});

	//On cache tous les sous menus des menus accordion de la page
	jQuery('ul.accordion_menu ul').hide();
	
	//Pour chaque menu accordeon, on ouvre le premier élément si option expand first spécifié
	jQuery.each(jQuery('ul.accordion_menu'), function(){
		jQuery('#' + this.id + '.expandfirst ul:first').show();
	});
	
	//définition du comportement (click ou mouseover  pour ouverture) pour chacun des menus accordion
	/*jQuery.each(jQuery('ul.accordion_menu'), function(){
		
		//si option rollover définie
		if	(jQuery('#' + this.id).hasClass('rollover')) {
			jQuery('#' + this.id + ' li a').mouseover(onSelectMenu);
		} else {
			jQuery('#' + this.id + ' li a').click(onSelectMenu);
		}
		
			
	});*/
	
	jQuery.each(jQuery('ul.accordion_menu li a'), function(){
		var parent = this.parentNode.parentNode;
		var nextelement=jQuery(this).next();
		
		if (nextelement.is('ul')) {
			
			jQuery(this).addClass('child_menu');
			jQuery(this).addClass('closed');
			if (parent) {
				
				if	(jQuery(parent).hasClass('rollover')) {
					jQuery(this).mouseover(onSelectMenu);
				} else {
					
					if (jQuery(this).attr("href")==null || jQuery(this).attr("href")=="#") {
						jQuery(this).click(onSelectMenu);
					}
					
				}
			}
			
		}
	});
	
	
		
		
		
	
}

function LeaveMenu() {
jQuery('div.menu_rollup ul').hide();
	
}

function WaitForLeaveMenu() {
	if (timermenus==null) {
		timermenus=window.setTimeout(function() { 
				if (timermenus) {
					jQuery('div.menu_rollup ul').hide();
				}
			}, 1000);
	}
	
}

function StopForLeaveMenu() {
	if (timermenus!=null) {
		window.clearTimeout(timermenus);
		timermenus=null;
	}
}


function onSelectMenu() {
//sur sélection d'un menu accordion
	var checkElement = jQuery(this).next();
	var parent = this.parentNode.parentNode.id;
		
	//si submenuright on referme les autres
	if(jQuery('#' + parent).hasClass('submenu_right')) {
		jQuery('#' + parent + ' ul:visible').slideUp('fast');
		if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
				checkElement.slideDown('normal');
				jQuery(this).addClass('closed');
				jQuery(this).removeClass('opened');
		}
		return false;
		
	}
	
	
			
	//si option noaccordion spécifiée chaque sous menu peut rester ouvert
	if(jQuery('#' + parent).hasClass('accordion_open')) {
		jQuery(this).next().slideToggle('normal');
		
		if (jQuery(this).hasClass('opened')) {
		
			jQuery(this).removeClass('opened');
			jQuery(this).addClass('closed');
		} else if (jQuery(this).hasClass('closed')) {
			jQuery(this).removeClass('closed');
			jQuery(this).addClass('opened');
			
		}
		return false;
	}

	//si menu visible et option collapsible définie on referme le menu
	if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
		if(jQuery('#' + parent).hasClass('collapsible')) {
			jQuery('#' + parent + ' ul:visible').slideUp('normal');
			jQuery(this).removeClass('opened');
			jQuery(this).addClass('closed');
		}
		
		return false;
	}
	
	

	//si menu non visible on l'ouvre
	if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
		jQuery('#' + parent + ' ul:visible').slideUp('normal');
		checkElement.slideDown('normal');
		/*this.removeClass('closed');
		this.addClass('opened');*/
		return false;
	}
}




	
	//Quand la page est chargée, initialisation des menus
	jQuery(document).ready(initMenus);
