/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|                               CLASSE POSTIT                               |
|---------------------------------------------------------------------------|
|                                                                           |
|                                                                           |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|                                         Benjamin COIFFARD - novembre 2007 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/


/* CONSTRUCTEUR
----------------------------------------------------------------------------
	Le constructeur du postit est appelée dès le chargement sur toutes
	les pages contenant une occurence de l'objet. Il est déclaré invisible
	par CSS et ne perturbe donc pas l'utilisateur.
	Pour ouvrir un postit, il suffit d'appeler la fonction afficher, qui
	le rend visible, et ajoute les éléments nécessaires.
---------------------------------------------------------------------------*/
function Postit(){

// Initialisation des attributs de la boite
	var lui = this;
	lui.titre = null;
	lui.titreImg = null;
	lui.liste = null;
	lui.rubrique = null
	lui.estVisible = false;
	lui.noeud = document.createElement('div');
	lui.noeud.className = 'postit';
	ajouterAttribut('id', lui.noeud, 'postit');

// Ajout de l'élément au DOM
	document.getElementById('global').appendChild(lui.noeud);

// Barre de titre avec titre et bouton d'annulation
	ajouterTexte('h1', null, 'pti_titre', 'postit', 'titre du post-it', 'ajout');
	ajouterTexte('span', null, 'pti_x', 'postit', 'X', 'ajout');
	document.getElementById('pti_x').onclick = function() {
		lui.masquer();
	}
	document.getElementById('pti_x').onmouseover = function() {
		this.style.color = "#69f";
	}
	document.getElementById('pti_x').onmouseout = function() {
		this.style.color = "#006";
	}
	document.getElementById('pti_x').style.cursor = "pointer";
}


/* AFFICHE LE POSTIT
----------------------------------------------------------------------------
	Le postit est toujours présente sur la page, on joue simplement sur la
	propriété "visibility" pour l'afficher ou la masquer.
	Avant d'afficher le postit, on vérifie qu'il n'est pas déjà présent,
	et si oui, on l'efface.
	La construction du contenu du postit se fait en fonction de son	type.
---------------------------------------------------------------------------*/
Postit.prototype.afficher = function (){
		
// Si le postit est déjà affichée, on la vide et on l'efface
	if(this.estVisible) {
		this.masquer();
	}
		
// Modification du titre de la fenêtre
	document.getElementById('pti_titre').innerHTML = this.titre;
	
// Affichage de chaque ligne
	for (var i=0; i<this.rubrique.length; i++) {
		ajouterTexte('span', 'rubrique', null, 'postit', this.rubrique[i], 'ajout');
		for (var j=0; j<this.info[this.rubrique[i]].length; j++)
			ajouterTexte('span', 'element', null, 'postit', '- '+this.info[this.rubrique[i]][j], 'ajout');
	}
	

	
// Paramètres d'affichages CSS
	this.noeud.style.display = "block";
	this.estVisible = true;


}


/* MASQUE LE POSTIT
----------------------------------------------------------------------------
	Le postit est toujours présente sur la page, on joue simplement sur la
	propriété "visibility" pour afficher ou masquer la boite.
	Lorsqu'on masque le postit, on en profite pour faire un peu de ménage,
	et supprimer tous les éléments sauf le titre
---------------------------------------------------------------------------*/
Postit.prototype.masquer = function (){
		
	this.type = null;
	this.info = null;
	this.place = null;
	this.res = null;
	this.nbCat = null;
	this.mode = null;

	var dernier = this.noeud.lastChild;
	while (dernier.getAttribute('id', false) != 'pti_x') {
		this.noeud.removeChild(dernier);
		dernier = this.noeud.lastChild;
	}
	
// On rend la fiche invisible, et on le dit
	this.estVisible = false;
	this.noeud.style.display = "none";

}


/* CHARGE LE POSTIT SUR LA PAGE
----------------------------------------------------------------------------
	Au moment du chargement de la page HTML, l'objet postit doit être créé,
	et le calque ajouté à la page.
---------------------------------------------------------------------------*/
function cPo(){

	lePostit = new Postit();

}