// Librairie de gestion pour les menus en tiroir
// Cette librairie requiert le chargement de dom.js

// Ouvre/ferme (toggle) le sous-menu
function open_menu(e) {
	var m = e.currentTarget;
	var t = (e.target) ? e.target : e.srcElement;
	if (t) {
		if (t.nodeType == 3 || t.nodeName != 'LI') t = t.parentNode;	// defeat Safari bug
		if (m != t) return;
	}
	m = m.firstChild;
	while (m.nodeName != 'UL') m = m.nextSibling;
	if (m.style.display != 'block') closeAll_menu('subnav','LI'); // target already opened
	m.style.display = (m.style.display != 'block') ? 'block' : 'none';
	m.parentNode.className = (m.style.display == 'block') ? 'subnav select' : 'subnav';
}

// Ferme tous les sous-menus
function closeAll_menu(objClass, objType) {
	objList = getElementsByClass(objClass, objType);
	ln = objList.length;
	for (i=0; i<ln; i++) {
		c = objList[i].firstChild;
		while (c.nodeName != 'UL') c = c.nextSibling;
		c.style.display = 'none';
		objList[i].className = 'subnav';
	}
}

// Ouvre le sous-menu contenant l'item sélectionné
// et met à jour la liste de tri
function set_current() {
	closeAll_menu('subnav','LI');
	var currnav = document.getElementById('currnav');
	if (currnav != null) {
		// sous-menu
		targetnode = currnav;
		while (targetnode.parentNode.className != 'subnav' && targetnode.parentNode.id != 'navbarContent') targetnode = targetnode.parentNode;
		if (targetnode.parentNode.className == 'subnav') {
			targetnode.style.display = "block";
			targetnode.parentNode.className = "subnav select";
		}

		// set scroll position
		parentDiv = currnav.parentNode;
		while (parentDiv.nodeName != 'DIV' && parentDiv.nodeName != 'HTML') parentDiv = parentDiv.parentNode;
		if (parentDiv.nodeName == 'DIV') {
			if (parentDiv.id == 'directors' || parentDiv.id == 'years') {
				currnavParent = currnav.parentNode;
				while (currnavParent.nodeName != 'LI' && currnavParent.nodeName != 'HTML') currnavParent = currnavParent.parentNode;
				parentTop = currnavParent.offsetTop;
			} else {
				parentTop = currnav.offsetTop;
			}
			if (is_opera) {
				parentTop = parentTop - 65;
			}
			parentDiv.scrollTop = parentTop;
		}

	}
}

// Change de menu selon l'état de la liste de tri
function change_menu(e) {
	var m = e.currentTarget;
	var t = (e.target) ? e.target : e.srcElement;
	if (t) {
		if (t.nodeType == 3 || t.nodeName != 'SELECT') t = t.parentNode;	// defeat Safari bug
		if (m != t) return;
	}
	// hide all menus
	menus = getElementsByClass('navwrap','div');
	ln = menus.length;
	for (i=0; i<ln; i++) {
		menus[i].className = 'navwrap';
	}
	// display selected one
	menuId = m.options[m.selectedIndex].value;
	menu = document.getElementById(menuId);
	menu.className = 'navwrap currmenu';
}

var agt=navigator.userAgent.toLowerCase();
var is_mac_ie = ( (agt.indexOf("msie") != -1) && (agt.indexOf('mac') != -1) && (agt.indexOf("opera") == -1) );
var is_opera = (agt.indexOf("opera") != -1);

// Mise en place à l'ouverture de la page
// Fonction appelée par un script placé au pied de la page
function initMenu() {
	if (!is_mac_ie) set_current(); // contourne un bug dans IE5 mac
	mlisten('click', getElementsByClass('subnav','li'), open_menu );
	listen('change', document.getElementById('navsortby'), change_menu );
}

// contourne un bug dans IE5 mac
window.onload = function() {
	if (is_mac_ie) set_current();
	};

