// Tableau

/*
 * Utilisation :  
 *  1. Créer un tableau avec la proprieté class="dTable" (Dynamic TABLE)
 *  2. Le tableau doit être standard : il doit contenir un <thead>, un <tbody> et un <tfoot>
 *     et utiliser à bon escient les <td> et <th>.
 *  3. La première ligne du tbody sera utilisée comme ligne de réference.
 *     Elle sera clonée pour en ajouter de nouvelles. Elle ne sera pas affichée. 
 */

//window.onload = dtableInit;
j=1;
/* initialise le script */
function dtableInit() {
	var table = document.getElementsByTagName('TABLE');
	for ( var i = 0; i < table.length; i++ ) {
		// on récupère tous les tableaux dynamiques
		if ( table[i].className = 'dTable' ) {
			var tbody = table[i].tBodies[0];
			var newTr = tbody.rows[0].cloneNode(true);
			
			// on masque la première ligne du tbody (la ligne de reference)
			tbody.rows[0].style.display = 'none';
			
			// on en ajoute une
			tbody.appendChild(newTr);
		}
	}
}

/* trouve le tag "parentTagName" parent de "element" */
function getParent(element, parentTagName) {
	if ( ! element )
		return null;
	else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
		return element;
	else
		return getParent(element.parentNode, parentTagName);
}

/* ajoute une ligne */

	function addLigne(link){
		j++;
		// 1. récuperer le node "TABLE" à manipuler
		var td = link.parentNode; // on récupère le noeud parent de l'élément TD
		var table = getParent(td,'TABLE'); // on initialise le TABLE parent du TD
		
		// 2. on va manipuler le TBODY
		var tbody = table.tBodies[0];
		
		// 3. on clone la ligne de reference
		var newTr = tbody.rows[0].cloneNode(true);
		newTr.id = "ligne_"+j; // on lui donne un nouveau numéro
		var newTd = newTr.getElementsByTagName("td")[1]; // on récupère le TD qui contient l'activité
		if(newTd.getElementsByTagName("div")[0]){ // on vérifie si le TD contient un DIV
			var newDiv = newTd.getElementsByTagName("div")[0];
			newDiv.id = "AffAct_"+newTr.id; // on donne un nouveau nom au DIV, 
		}
		tbody.appendChild(newTr); // on rajoute le noeud TR au TBODY
		
		if (document.all) // pour IE
			newTr.style.display = "block";
		else
			newTr.style.display = "table-row"; // pour Gecko
	}

/* supprimer une ligne */
function delLigne(link) {
	// 1. récuperer le node "TABLE" à manipuler
	var td = link.parentNode;
	var table = getParent(td, 'TABLE');
	
	// 2. récuperer le TBODY
	var tbody = table.tBodies[0];
	
	// 3. Supprimer le TR
	tbody.removeChild(getParent(td, 'TR'));
}
