/*
Site : Le CISS
Ver. : 1.0
Date : 30/05/2007
By Churchill
*/

window.onload=init;

// the timeout for the menu
var timeout = 0;
for( var i = 0; i < 100; i++ )
{
    eval("var timeoutli" + i + " = false;");
	eval("var timeoutmenuli" + i + " = false;");
}

function init()
{
        fontSizerOnLoad(readCookie("size"));
	// Menu principal
	var menu = document.getElementById('menu'); // the root element
	var menulis = menu.getElementsByTagName('li'); // all the li
	menu.className='menu'; //compatibility issue
	for ( var i=0; i<menulis.length; i++ )
	{
		if(menulis.item(i).getElementsByTagName('ul')[0])
		{
			menulis.item(i).getElementsByTagName('ul')[0].style['position'] = 'absolute';
			menulis.item(i).getElementsByTagName('ul')[0].style['display'] = 'none';
		}
			
		if ( menulis.item(i).getElementsByTagName('ul').length > 0 )
		{
			// improve IE key navigation
			addEvent(menulis.item(i),'keyup',show);
			// link events to list item
			addEvent(menulis.item(i),'mouseover',show);
			addEvent(menulis.item(i),'mouseout',timeoutHide);
			addEvent(menulis.item(i),'blur',timeoutHide);
			addEvent(menulis.item(i),'focus',show);
			// Ajoutes un evt sur le lien au blur,rollout
			var last = menulis.item(i).getElementsByTagName('ul')[0].getElementsByTagName('a').length - 1;
			addEvent(menulis.item(i).getElementsByTagName('ul')[0].getElementsByTagName('a')[last],'blur',timeoutHide2);
			
			// add an id to list item
			menulis.item(i).setAttribute( 'id', "menuli"+i );
		}
	}
	
	// Menu thématique
	var menuThem = document.getElementById('menuThem'); // the root element
	var lis = menuThem.getElementsByTagName('li'); // all the li
	menuThem.className='menuThem'; //compatibility issue
	
	for ( var i=0; i<lis.length; i++ )
	{
		if ( lis.item(i).getElementsByTagName('ul').length > 0 )
		{        
			lis.item(i).getElementsByTagName('ul')[0].style['display'] = 'none';
			lis.item(i).getElementsByTagName('ul')[0].style['position'] = 'absolute';
			// improve IE key navigation
			addEvent(lis.item(i),'keyup',show);
			// link events to list item
			addEvent(lis.item(i),'mouseover',show);
			addEvent(lis.item(i),'mouseout',timeoutHide);
			addEvent(lis.item(i),'blur',timeoutHide);
			addEvent(lis.item(i),'focus',show);
			// Ajoutes un evt sur le lien au blur,rollout
			last = lis.item(i).getElementsByTagName('ul')[0].getElementsByTagName('a').length - 1;
			addEvent(lis.item(i).getElementsByTagName('ul')[0].getElementsByTagName('a')[last],'blur',timeoutHide2);
			
			// add an id to list item
			lis.item(i).setAttribute( 'id', "li"+i );
		}
	}
		
}

function addEvent( obj, type, fn ) {
	if ( obj.attachEvent ) {
	obj['e'+type+fn] = fn;
	obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
	obj.attachEvent( 'on'+type, obj[type+fn] );
	} else
	obj.addEventListener( type, fn, false );
}

function removeEvent( obj, type, fn ) {
	if ( obj.detachEvent ) {
	obj.detachEvent( 'on'+type, obj[type+fn] );
	obj[type+fn] = null;
	} else
	obj.removeEventListener( type, fn, false );
}
    
// hide the first ul element of the current element
function timeoutHide()
{
    // start the timeout
    eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
}

// hide the first ul element of the current element (with keyboard activation)
function timeoutHide2()
{
    // start the timeout
	//alert(this.parentNode.parentNode.parentNode.id);
    eval( "timeout" + this.parentNode.parentNode.parentNode.id + " = window.setTimeout('hideUlUnder( \"" + this.parentNode.parentNode.parentNode.id + "\" )', " + timeout + " );");
}

// hide the ul elements under the element identified by id
function hideUlUnder( id )
{   
    document.getElementById(id).getElementsByTagName('ul')[0].style['display'] = 'none';
}

// show the first ul element found under this element
function show()
{
    // show the sub menu
    this.getElementsByTagName('ul')[0].style['display'] = 'block';
    var currentNode=this;
    while(currentNode)
    {
            if( currentNode.nodeName=='LI')
            {
                currentNode.getElementsByTagName('a')[0].className = 'linkOver';
            }
            currentNode=currentNode.parentNode;
    }
    // clear the timeout
    eval ( "clearTimeout( timeout"+ this.id +");" );
    hideAllOthersUls( this );
}

// hide all ul on the same level of  this list item
function hideAllOthersUls( currentLi )
{
    var lis = currentLi.parentNode;
    for ( var i=0; i<lis.childNodes.length; i++ )
    {
        if ( lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id )
        {
            hideUlUnderLi( lis.childNodes[i] );
        }
    }
}

// hide all the ul wich are in the li element
function hideUlUnderLi( li )
{
    var as = li.getElementsByTagName('a');
    for ( var i=0; i<as.length; i++ )
    {
        as.item(i).className="";
    }
    var uls = li.getElementsByTagName('ul');
    for ( var i=0; i<uls.length; i++ )
    {
        uls.item(i).style['display'] = 'none';
    }
}