// open and close lists

function aLists(IdList){
	if (document.getElementsByTagName &&  document.getElementById && document.getElementById(IdList)) {
		var laList = document.getElementById(IdList);
		laList.className = 'dynamic';
		var li = laList.getElementsByTagName('LI');
		for(var ii=0; ii<li.length; ++ii) {
			var subUl = li[ii].getElementsByTagName('UL');
			if (subUl[0]) {
				subUl[0].id = IdList + ii;
				subUl[0].className = 'closed';
				
				var iconLink = new Image();
				iconLink.src = context.contextPath + '/skins/SciencesPo/resources/img/closed.gif';
				iconLink.width = '24';
   				iconLink.height = '13';
				iconLink.border = '0';
				iconLink.alt ='Ouvrir';

				
				var leLink = document.createElement('a');
				leLink.href= "javascript:ShowHideList('" + IdList + ii + "')";
				leLink.className="icon";
				
				leLink.appendChild(iconLink);
				
				var firstLink = li[ii].childNodes[0];
				li[ii].insertBefore(leLink,firstLink);
				firstLink.childNodes[0].href = leLink.href;
			} else {
				li[ii].style.paddingLeft = '12px';
			}  
		}
		leAllTxt = document.createTextNode('Tout ouvrir');
		leAll = document.createElement('a');
		leAll.appendChild(leAllTxt);
		leAll.href= "javascript:ShowHideAll('" + IdList + "')";
		leAll.id= IdList + "all";
		leAll.className= "all_closed";
		
		firstLink = laList.firstChild;
		laList.insertBefore(leAll,firstLink);
		
	}
}
function ShowHideList(IdList){
	var subUl = document.getElementById(IdList);
	var leLink = subUl.parentNode.getElementsByTagName('A')[0];
	if (subUl.className == 'closed') {
		subUl.className = '';
		leLink.getElementsByTagName('IMG')[0].src = context.contextPath + '/skins/SciencesPo/resources/img/opened.gif';
		leLink.getElementsByTagName('IMG')[0].width = '24';
   		leLink.getElementsByTagName('IMG')[0].height = '13';
		leLink.getElementsByTagName('IMG')[0].border = '0';
		leLink.getElementsByTagName('IMG')[0].alt = 'Fermer';
	}
	else{ 
		subUl.className = 'closed';
		leLink.getElementsByTagName('IMG')[0].src =  context.contextPath + '/skins/SciencesPo/resources/img/closed.gif';
		leLink.getElementsByTagName('IMG')[0].width = '24';
   		leLink.getElementsByTagName('IMG')[0].height = '13';
		leLink.getElementsByTagName('IMG')[0].border = '0';
		leLink.getElementsByTagName('IMG')[0].alt = 'Ouvrir';
	}
}

function ShowHideAll(IdList){
	var laList = document.getElementById(IdList);
	var leAll = document.getElementById(IdList + 'all');	
	var subUl = laList.getElementsByTagName('UL');
  if (leAll.className == 'all_closed') {
  	for(var ii=0; ii<subUl.length; ++ii) {
  		subUl[ii].className = '';
			var leLink = subUl[ii].parentNode.getElementsByTagName('A')[0];
			leLink.getElementsByTagName('IMG')[0].src = context.contextPath + '/skins/SciencesPo/resources/img/opened.gif';
			leLink.getElementsByTagName('IMG')[0].width = '24';
   			leLink.getElementsByTagName('IMG')[0].height = '13';
			leLink.getElementsByTagName('IMG')[0].border = '0';
			leLink.getElementsByTagName('IMG')[0].alt = 'Fermer';
  	}
		leAll.className = 'all_opened';
		leTxt = leAll.firstChild;
		leTxt.nodeValue ='Tout fermer';
	}
  else { 
  	for(var ii=0; ii<subUl.length; ++ii) {
  		subUl[ii].className = 'closed';
		var leLink = subUl[ii].parentNode.getElementsByTagName('A')[0];
  		leLink.getElementsByTagName('IMG')[0].src =  context.contextPath + '/skins/SciencesPo/resources/img/closed.gif';
		leLink.getElementsByTagName('IMG')[0].width = '24';
   		leLink.getElementsByTagName('IMG')[0].height = '13';
		leLink.getElementsByTagName('IMG')[0].border = '0';
  		leLink.getElementsByTagName('IMG')[0].alt = 'Ouvrir';
		}
		leAll.className = 'all_closed';
		leTxt = leAll.firstChild;
		leTxt.nodeValue =  'Tout ouvrir';
  }
}

/*
* Montre / Cache un div
*/
function DivStatus( nom, numero )
	{
		var divID = nom + numero;
		if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents
			{
				Pdiv = document.getElementById( divID );
				PcH = true;
			}
		else if ( document.all && document.all[ divID ] ) // Pour les veilles versions
			{
				Pdiv = document.all[ divID ];
				PcH = true;
			}
		else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions
			{
				Pdiv = document.layers[ divID ];
				PcH = true;
			}
		else
			{
				
				PcH = false;
			}
		if ( PcH )
			{
				Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
			}
	}
	
/*
* Cache tous les divs ayant le même préfixe
*/
function CacheTout( nom )
	{	
		var NumDiv = 1;
		if ( document.getElementById ) // Pour les navigateurs récents
			{
				while ( document.getElementById( nom + NumDiv) )
					{
						SetDiv = document.getElementById( nom + NumDiv );
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.all ) // Pour les veilles versions
			{
				while ( document.all[ nom + NumDiv ] )
					{
						SetDiv = document.all[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.layers ) // Pour les très veilles versions
			{
				while ( document.layers[ nom + NumDiv ] )
					{
						SetDiv = document.layers[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
	}

/*
* Montre tous les divs ayant le même préfixe
*/
function MontreTout( nom )
	{	
		var NumDiv = 1;
		if ( document.getElementById ) // Pour les navigateurs récents
			{
				while ( document.getElementById( nom + NumDiv) )
					{
						SetDiv = document.getElementById( nom + NumDiv );
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.all ) // Pour les veilles versions
			{
				while ( document.all[ nom + NumDiv ] )
					{
						SetDiv = document.all[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.layers ) // Pour les très veilles versions
			{
				while ( document.layers[ nom + NumDiv ] )
					{
						SetDiv = document.layers[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
	}
	
/*
* Inverse les divs: Cache les divs visible et montre le divs cachés :)
*/
function InverseTout( nom )
	{	
		var NumDiv = 1;
		if ( document.getElementById ) // Pour les navigateurs récents
			{
				while ( document.getElementById( nom + NumDiv ) )
					{
						SetDiv = document.getElementById( nom + NumDiv );
						DivStatus( nom, NumDiv );
						NumDiv++;
					}
			}
		else if ( document.all ) // Pour les veilles versions
			{
				while ( document.all[ nom + NumDiv ] )
					{
						SetDiv = document.all[ nom + NumDiv ];
						DivStatus( nom, NumDiv );
						NumDiv++;
					}
			}
		else if ( document.layers ) // Pour les très veilles versions
			{
				while ( document.layers[ nom + NumDiv ] )
					{
						SetDiv = document.layers[ nom + NumDiv ];
						DivStatus( nom, NumDiv );
						NumDiv++;
					}
			}
	}

addLoadEvent(function() {aLists('dynamic_list')});
//addLoadEvent(function() {aLists('dynamic_list_2')});
