/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|                           CONSTRUCTION DE PAGES                           |
|---------------------------------------------------------------------------|
|                                                                           |
| Les fonction ci-dessous permettent d'ajouter un élément sur une page déjà |
|    construite en HTML. Selon le type d'éléments à ajouter, la fonction    |
|       récupère différents paramètres et ajoute l'élément à la page.       |
|                                                                           |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|                                            Benjamin COIFFARD - avril 2007 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/


/* AJOUTER UN ELEMENT
---------------------------------------------------------------------------*/
function ajouterElement(type, classe, id, parent, mode) {

	var element = document.createElement(type);
	var elParent = document.getElementById(parent);
	
	if (classe != null)
		element.className = classe;

	if (id != null)
		ajouterAttribut('id', element, id);
	
	if (mode == 'ajout')
		elParent.appendChild(element);

	else {
		var frere = document.getElementById(mode);
		elParent.insertBefore(element, frere);
	}
		
}


/* AJOUTER UN TEXTE
---------------------------------------------------------------------------*/
function ajouterTexte(type, classe, id, parent, texte, mode) {

	var elTexte = document.createTextNode(texte);
	var element = document.createElement(type);
	var elParent = document.getElementById(parent);
	element.appendChild(elTexte);
	
	if (classe != null)
		element.className = classe;
		
	if (id != null)
		ajouterAttribut('id', element, id);
	
	if (mode == 'ajout')
		elParent.appendChild(element);

	else {
		var frere = document.getElementById(mode);
		elParent.insertBefore(element, frere);
	}

}


/* AJOUTER UN ATTRIBUT
---------------------------------------------------------------------------*/
function ajouterAttribut(type, element, valeur) {

	var attribut = document.createAttribute(type);
	attribut.nodeValue = valeur;
	element.setAttributeNode(attribut);
	
}


/* AJOUTER UNE IMAGE
---------------------------------------------------------------------------*/
function ajouterImage(source, classe, id, parent, alt) {

	var img = document.createElement("img");
	var src = document.createAttribute("src");
	src.nodeValue = source;
	img.setAttributeNode(src);
	
	if (classe != null)
		img.className = classe;
	
	if (id != null)
		img.setAttribute("id", id);

	var parent = document.getElementById(parent);
	parent.appendChild(img);

}


/* AJOUTER UN INPUT
---------------------------------------------------------------------------*/
function ajouterInput(texte, classe, id, parent, mode) {

	var element = document.createElement('input');
	var elParent = document.getElementById(parent);
	
	element.setAttribute("value", texte);
	
	if (classe != null)
		element.className = classe;
		
	if (id != null)
		ajouterAttribut('id', element, id);
	
	if (mode == 'ajout')
		elParent.appendChild(element);

	if (mode == 'insert')
		elParent.insertBefore(element);

}


function ajouterTabCel(type, classe, id, ligne, texte, mode) {

	var cellule = document.createElement(type);
	var elLigne = document.getElementById(ligne);
	
	if (classe != null)
		cellule.className = classe;

	if (id != null)
		ajouterAttribut('id', cellule, id);
	
	if (texte != null) {
		var noeudTexte = document.createTextNode(texte);
		cellule.appendChild(noeudTexte);
	}
	
	if (mode == 'ajout')
		elLigne.appendChild(cellule);

	if (mode == 'insert')
		elLigne.insertBefore(cellule);

}


function ajouterTabLigne(classe, id, parent, section, mode) {

	var ligne = document.createElement('tr');
	var elParent = document.getElementById(parent);
	
	if (parent == null)
		var tableau = document.getElementsByTagName('table')[0];
	else var tableau = elParent;
	
	if (section != null) {
		tableau = tableau.getElementsByTagName(section)[0];
	}
	
	if (classe != null)
		ligne.className = classe;

	if (id != null)
		ajouterAttribut('id', ligne, id);
	
	if (mode == 'ajout')
		tableau.appendChild(ligne);
	else {
		var frere = document.getElementById(mode);
		tableau.insertBefore(ligne, frere);
	}

}

/* Retourne un élément depuis son type, et sa classe
---------------------------------------------------------------------------*/
function getElementsParClassName(element, classe) {
	
	var tous = document.getElementsByTagName(element);
	var tab = new Array();
	for (var i = 0; i< tous.length; i++)
		if (hasClass(tous[i], classe))
			tab[tab.length] = tous[i];
	return tab;
	
}
