/**************************************************************************************
//
//		FONCTIONS DE GESTION DU MENU
//
**************************************************************************************/

// Initialisation d'un timer general pour le menu
var TIMER_MENU = null;

// Fonction de gestion du survol du menu
function gestionSousMenu(sousmenuName, action) {
	
	if(action == 'show')
	{
		var listeSousMenus = Element.childElements('sousmenus');
			
		listeSousMenus.each(
			function(sousmenu)
			{
				if(sousmenu.visible() == true && sousmenu.id != 'sousmenu_'+sousmenuName) {
					Effect.Fade(sousmenu, { duration : 0.3 });
				}
			}
		);
		
		Effect.Appear('sousmenu_'+sousmenuName, { duration : 0.3 });
	}
	else if(action == 'hide')
	{
		Effect.Fade('sousmenu_'+sousmenuName, { duration : 0.3 });
	}
	
	clearTimeout(TIMER_MENU);

}

/**************************************************************************************
//
//		FONCTIONS DE GESTION DE LA RECHERCHE
//
**************************************************************************************/

// Gestion du focus du champs de recherche global
function focusSearchField(theField) {
	$(theField).removeClassName('searchInput');
	$(theField).addClassName('searchInputNoBG');
}
// Gestion de la perte de focus du champs de recherche global
function blurSearchField(theField) {
	if(theField.value == '') {
		$(theField).removeClassName('searchInputNoBG');
		$(theField).addClassName('searchInput');
	}
}

/**************************************************************************************
//
//		FONCTIONS DE GESTION DU FLASHINFO
//
**************************************************************************************/

// Initialisation d'un timer general pour le FlashInfo
var TIMER_FLASHINFO = null;
var BOOL_FLASHINFO_MANUEL = false;
var BOOL_FLASHINFO_FULL = false;

// Fonction de défilement automatique des brèves
function defileFlashInfo() {
	
	var breveVisible = null;
	var listeBreves = Element.childElements('brevesSmall');
	var firstBreve = listeBreves.first();
	
	// Détermination de la brève actuelle
	listeBreves.each(
		function(breveActuelle)
		{
			if(breveActuelle.visible() == true) {
				breveVisible = breveActuelle;
				return false;
			}
		}
	);
	
	// Détermination de la brève suivante à afficher
	var siblingList = breveVisible.nextSiblings();
	if(siblingList.size() == 0) {
		nextBreve = firstBreve;	
	} else {
		nextBreve = siblingList.first();
	}
	
	Effect.Fade(breveVisible, { duration : 0.3 });
	Effect.Appear(nextBreve, { delay : 0.6, duration : 0.6 });
	
	TIMER_FLASHINFO = setTimeout('defileFlashInfo()',5000);	
}

// Fonction de défilement manuel des brèves
function defileFlashInfoManuel(orientation) {
	
	clearTimeout(TIMER_FLASHINFO);
	
	if(BOOL_FLASHINFO_MANUEL == false)
	{
		BOOL_FLASHINFO_MANUEL = true;
		
		var breveVisible = null;
		var listeBreves = Element.childElements('brevesSmall');
		var firstBreve = listeBreves.first();
		var lastBreve = listeBreves.last();
		
		// Détermination de la brève actuelle
		listeBreves.each(
			function(breveActuelle)
			{
				if(breveActuelle.visible() == true) {
					breveVisible = breveActuelle;
					return false;
				}
			}
		);
		
		// Détermination de la brève suivante à afficher
		if(orientation == 'up')
		{
			var siblingList = breveVisible.previousSiblings();
			if(siblingList.size() == 0) {
				nextBreveToDisplay = lastBreve;	
			} else {
				nextBreveToDisplay = siblingList.first();
			}
		} else if(orientation == 'down') {
			var siblingList = breveVisible.nextSiblings();
			if(siblingList.size() == 0) {
				nextBreveToDisplay = firstBreve;	
			} else {
				nextBreveToDisplay = siblingList.first();
			}
		}
		
		Effect.Fade(breveVisible, { duration : 0.3 });
		Effect.Appear(nextBreveToDisplay, { delay : 0.3, duration : 0.6 });
		
		setTimeout('BOOL_FLASHINFO_MANUEL = false',500);
	}
	
	TIMER_FLASHINFO = setTimeout('defileFlashInfo()',5000);
	
}

// Fonction d'affichage de la liste entière des FlashInfos
function gestionFlashInfoFull(action) {
	
	if(!BOOL_FLASHINFO_FULL)
	{
		BOOL_FLASHINFO_FULL = true;
		
		if(action == 'show')
		{
			// Masquer les news défilantes
			Effect.Fade('brevesSmall', { duration : 0.3 });
			// Masquer "UP", "DOWN" & "+ de brèves", Afficher "Refermer"
			Effect.Fade('controlesFlashInfoOpen', { duration : 0.3 });
			Effect.Appear('controlesFlashInfoClose', { delay : 0.3, duration : 0.6 });
			// Afficher la liste des news
			Effect.BlindDown('flashInfoFull', { duration : 0.3 });
			
			// Stopper le timer de défilement automatique
			clearTimeout(TIMER_FLASHINFO);
			
		} else if (action == 'hide') {
			// Masquer les news défilantes
			Effect.Appear('brevesSmall', { delay : 0.3, duration : 0.6 });
			// Afficher "UP", "DOWN" & "+ de brèves", Masquer "Refermer"
			Effect.Fade('controlesFlashInfoClose', { duration : 0.3 });
			Effect.Appear('controlesFlashInfoOpen', { delay : 0.3, duration : 0.6 });
			// Afficher la liste des news
			Effect.BlindUp('flashInfoFull', { duration : 0.3 });

			// Relancer le timer de défilement automatique
			TIMER_FLASHINFO = setTimeout('defileFlashInfo()',5000);
		}
		
		setTimeout('BOOL_FLASHINFO_FULL = false',1000);
	}
}