// JavaScript Document
/*
Titre : classe Menu et classe Button
Auteur : fabrice antinoro
Date:26/04/2004
Fonction : Gère la mise en surbrillance des news

*/
//------------------------------------classe Menu---------------------------------------
function Menu(qty,activeColor,noActiveColor,tabIdActus){
	var buttons;				//tableau de boutons
	var activeColor;			//la couleur du bouton actif
	var noActiveColor;			//la couleur du bouton inactif
	var qty;					//la quantité de boutons
	var tabIdActus;				//tableau des id d'actus
	var lastActiveButton;		//mémorisation du dernier bouton activé(contient la dernière id actus séléctionnée)
	
	//initialisation de l'objet
	this.qty = qty;
	this.activeColor = activeColor;
	this.noActiveColor = noActiveColor;
	this.tabIdActus = tabIdActus;
	this.lastActiveButton = '0';
	this.buttons = new Array();
}
	//Création des boutons du menu
		Menu.prototype.createButton = function(){
		for(i=0;i<this.qty;i++){
			//instanciation de la classe Button
			this.buttons[this.tabIdActus[i]] = new Button(this.tabIdActus[i]);
		
		}
		//méthode qui qui initialise les activations des boutons au départ
		//iddefault => transmission de l'id actu par défaut qui doit être en surbrillance
		Menu.prototype.paintButton = function(iddefault){
				
				//activation d'un bouton par défaut selon l'id actu transmise
				this.buttons[iddefault].action(this.activeColor);
				//s'il n' y a pas de boutons encore activées (lastActiveButton == 0) 
				if(this.lastActiveButton == '0'){
					//initialiser lastActiveButton avec l'id actus transmis
					this.lastActiveButton = this.buttons[iddefault].name;
				}else{
					//sinon désactiver l'ancien bouton puis initialiser lastActiveButton avec l'id actus transmis
					this.buttons[this.lastActiveColor].action(this.noActiveColor);
					this.lastActiveButton = iddefault;
				}
		}
		
		
		
	}
	//Méthode d'activation d'un bouton en cliquant dessus
	//id est l'id actu transmis
	Menu.prototype.active = function(id){
			//s'il ya bien un autre bouton activé
			if(this.lastActiveButton != '0'){
			//alors je le désactive
			this.buttons[this.lastActiveButton].action(this.noActiveColor);
			}
			//dans tous les cas, j'active le bouton qui a pour nom l'id actus séléctionnée
			this.buttons[id].action(this.activeColor);
			//et j'initialise le lasActiveButton
			this.lastActiveButton = id;
	}
	
	//------------------------------------Fin classe menu-----------------------------------------
	
	//------------------------------------Classe Button-------------------------------------------
	//id => lui passer l'idactu. L'id du bouton doit être le même que pour l'actu 
	function Button(id){
		var name;		//le nom de mon bouton
		var color;		//la couleur de mon bouton
	
		this.name = id;
	}
	//activation d'un bouton 
	//on lui passe la couleur en argument
	Button.prototype.action = function(color){

		this.color = color;
		document.getElementById(this.name).style.backgroundColor = this.color;
	
	}
	//Obtenir le nom du bouton
	Button.prototype.getName = function(){
		return this.name;
	}
	
	//--------------------------------------classe NewMenu------------------------------------------
	//classe d'utilisation du menu et du bouton
	function NewMenu(qte,myIdAct){
		var m;		//m => objet menu
		//création d'un nouveau menu
		this.m = new Menu(qte,'#f1f1f1','white',myIdAct);
		//création des boutons
		this.m.createButton();
		}
	//colorise tous les boutons au chargement de la page		
	NewMenu.prototype.paintAll = function(myiddefault){
		this.m.paintButton(myiddefault);
	}
	//active le bouton à cliquer
	NewMenu.prototype.active = function(id){
		this.m.active(id);
		}
	//---------------------------------------fin classe NewMenu------------------------------------
