// JavaScript Document
var $g_currentActiveMenu="";
var $g_currentVisibleSubmenu="";
var g_currentVisibleSubmenuID="";
var g_hideInterval;
var g_domElementToPass="";
var g_openInterval;
var g_timeBeforeOpeningSubmenus=300;
$(document).ready(function() {
	// preload images
	var arImgs = new Array('/modules/templates-hepl/img/layout/bg_nav-left-over.png', 
						   '/modules/templates-hepl/img/layout/bg_nav-right-over.png',
						   '/modules/templates-hepl/img/layout/bg_subnav-bottom.png',
						   '/modules/templates-hepl/img/layout/bg_subnav-top.png',
						   '/modules/templates-hepl/img/layout/bg_top-subnav-bottom.png',
						   '/modules/templates-hepl/img/layout/bg_top-subnav-top.png',
						   '/modules/templates-hepl/img/layout/icon_arrow-mainnav.png',						   
						   '/modules/templates-hepl/img/layout/portail-enseignant/bg_nav-left-over.png',
						   '/modules/templates-hepl/img/layout/portail-enseignant/bg_nav-right-over.png',
						   '/modules/templates-hepl/img/layout/portail-enseignant/bg_subnav-over.png',
						   '/modules/templates-hepl/img/layout/portail-enseignant/icon_arrow-mainnav-selected.png',
						   '/modules/templates-hepl/img/layout/portail-enseignant/bg_subnav-top.png',
						   '/modules/templates-hepl/img/layout/portail-futur-etudiant/bg_nav-left-over.png',
						   '/modules/templates-hepl/img/layout/portail-futur-etudiant/bg_nav-right-over.png',
						   '/modules/templates-hepl/img/layout/portail-futur-etudiant/bg_subnav-over.png',
						   '/modules/templates-hepl/img/layout/portail-futur-etudiant/bg_subnav-top.png',
						   '/modules/templates-hepl/img/layout/portail-futur-etudiant/icon_arrow-mainnav-selected.png'
						   );
	$.each(arImgs, function(key, value) { 
		var img = new Image();
		$(img).attr('src', value);
	});
	//style
	$('#topnavwrapper ul li').not('.opener').each(function() {
		$(this).find('a').css('background','none');	
	});
	
	// event handlers
	$('#mainnavwrapper ul li, #topnavwrapper ul li.opener').mouseover(function(event) {
		if (g_currentVisibleSubmenuID!=$('#'+'sub'+$(this).attr('id')).attr('id')) closeSub();
		window.clearInterval(g_openInterval);
		g_domElementToPass = this;
		g_openInterval = window.setInterval(launchSubMenuOpener,g_timeBeforeOpeningSubmenus);
		event.stopPropagation();
	});
	
	// exceptions pour les menu top qui n'ont pas de sous-menu
	$('#topnavwrapper ul li').not('.opener').mouseover(function(event) {
		$(this).addClass('over');
		if ($(this).hasClass('selected')) {
			$(this).data('selectedItem',true);
			$(this).removeClass('selected');
		}
		
	});	
	$('#topnavwrapper ul li').not('.opener').mouseout(function(event) {
		$(this).removeClass('over');
		if ($(this).data('selectedItem')) {
			$(this).addClass('selected');
		}
		window.clearInterval(g_openInterval);
	});
	//stopper le timer qui cache le menu en rollover sur sous-menu
	$('.submenuwrapper ul li, .submenuwrapper .submenuwrappertop, .submenuwrapper .submenuwrappertoplast, .topsubmenuwrapper ul li, .topsubmenuwrapper .submenuwrappertop').mouseover(function(event) {
		clearTimer();	
		event.stopPropagation();
	});
	//rollout -> start timer to hide
	$('.submenuwrapper ul li,  .submenuwrapper .submenuwrappertop, .submenuwrapper .submenuwrappertoplast, #mainnavwrapper ul li, .topsubmenuwrapper ul li, #topnavwrapper ul li.opener, .topsubmenuwrapper .submenuwrappertop').mouseout(function(event) {
		window.clearInterval(g_openInterval);
		startTimer();
		event.stopPropagation();
	});
	$('.menuright, .menuleft').mouseover(function(event) {
		event.stopPropagation();											  
	});
	
	//positionner tous les éléments principaux, sauf le dernier 
	$('#mainnavwrapper ul li').each(function (index) {
		var parentID = $(this).attr('id');
		var childID = 'sub'+parentID;
		if (!$(this).hasClass('last') && !$(this).hasClass('selectedlast')) {
			var position = $(this).position().left - $('#mainnavwrapper').position().left;
			$('#'+childID).css('margin-left',position);
		} else {
			// aligner le dernier sous-menu à droite + 4px pour l'ombre 
			var position = $(this).position().left + $(this).width() - $('#mainnavwrapper').position().left - $('#'+childID).width() + 6;
			if ($.browser.mozilla && navigator.appVersion.indexOf("Mac")!=-1) position-=1;
			$('#'+childID).css('margin-left',position);
		}
	});
	
	//positionner les menus top, exception IE7
	if ( $.browser.msie ) {
		if( $.browser.version =="7.0") {
			var ie7 = true;
		}
	}
	$('#topnavwrapper ul li').each(function (index) {
		var parentID = $(this).attr('id');
		var childID = 'sub'+parentID;
		var position = $(this).position().left - $('#topnavwrapper').position().left;		
		if (ie7) {
			$('#'+childID).css('margin-left',position-681);
		} else {
			$('#'+childID).css('margin-left',position);
		}
			
		
	});
});

//ouverture des sous-menus
function openSub(domMenuElement) {
	if ($(domMenuElement).parent().parent().attr('id')!="topnavwrapper") {
		$(domMenuElement).find('.menuleft').addClass('menuleftover');
		$(domMenuElement).find('.menuright').addClass('menurightover');
		$(domMenuElement).find('.opener').addClass('over');	
	} else {
		$(domMenuElement).addClass('openerover');	
	}
	
	
	//cacher le menu ouvert si défini et qu'on rollover un autre
	//show new submenu, highlight nav
	if (g_currentVisibleSubmenuID!=$('#'+'sub'+$(domMenuElement).attr('id')).attr('id')) {
		$g_currentActiveMenu = $(domMenuElement);
		var parentID = $g_currentActiveMenu.attr('id');
		var childID = 'sub'+parentID;		
		$g_currentVisibleSubmenu = $('#'+childID);
		g_currentVisibleSubmenuID = $g_currentVisibleSubmenu.attr('id');
		$g_currentVisibleSubmenu.fadeIn(200);
		
	}
}
// interval pour ouverture
function launchSubMenuOpener() {
	openSub(g_domElementToPass);
	window.clearInterval(g_openInterval);
}
// interval pour fermeture
function startTimer() {
	clearTimer();
	g_hideInterval = window.setInterval(closeSub,200);	
}
// annulation d'intervalle fermeture (si roll sur sous-menu)
function clearTimer() {
	window.clearInterval(g_hideInterval);
}

//Fermeture effective
function closeSub() {	
	clearTimer();
	if (g_currentVisibleSubmenuID!="") {
		if ($g_currentActiveMenu.parent().parent().attr('id')!="topnavwrapper") {
			$g_currentActiveMenu.find('.menuleft').removeClass('menuleftover');
			$g_currentActiveMenu.find('.menuright').removeClass('menurightover');
			$g_currentActiveMenu.find('.opener').removeClass('over');	
		} else {
			$g_currentActiveMenu.removeClass('openerover');
		}
		$g_currentVisibleSubmenu.hide();
		g_currentVisibleSubmenuID="";
	}
}

