	/*
		***********************************************************************************************************
									OBJET DUPLICATION D'UN DIV
		***********************************************************************************************************
		Auteur: Florent Massiera
		Date de création: 04/05/2006
		Modification: 25/09/2007 par Adrien Lochon
	
		Utilisation :  
	 	1. Créer un div avec obligatoirement un id
	 	2. Créer à l'intérieur de ce div obligatoirement un nouveau div qui sera utilisé comme référence
	
		Exemple :
		<a href="#" onclick="monObjet.addLigne(); return false;">Ajouter une ligne</a>
		<div id="blocDuplication">
			<div id="laDuplication">
				<input type="text" name="champ1[]" />
				<a href="#" onclick="monObjet.delLigne(this); return false;">Supp</a>
			</div>
		</div>
		<script type="text/javascript">
			var monObjet = new DupliqueDiv('blocDuplication','laDuplication');
		</script> 		
	*/
	
	/* 
		Création de l'objet DupliqueDiv
		idBlocDiv : id du div regroupant les div à dupliquer
		idDiv			: référence de duplication
	*/
	function DupliqueDiv(idBlocDiv,idDiv) {
		this.idBlocDiv = idBlocDiv;
		this.idDivRef = document.getElementById(idDiv).cloneNode(true);
	}
	
	/*
		Trouve le tag "parentTagName" parent de "element"
		ENTREE
			null
		SORTIE
			true/false
	*/
	DupliqueDiv.prototype.getParent = function(element, parentTagName) {
		if (!element)
			return null;
		else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
			return element;
		else
			return this.getParent(element.parentNode, parentTagName);
	}
	
	
	/*
		Ajoute une ligne
		ENTREE
			null
		SORTIE
			null
	*/
	DupliqueDiv.prototype.addLigne = function() {
		// On récupère le div où tout va s'ajouter
		var blocDiv = document.getElementById(this.idBlocDiv);

		// On clone le div de reference
		var newDiv = this.idDivRef.cloneNode(true);
		
		// On ajoute la nouvelle ligne créer au bloc
		blocDiv.appendChild(newDiv);
	}
	
	/*
		Supprimer une ligne
		ENTREE
			element de ligne
		SORTIE
			null
	*/
	DupliqueDiv.prototype.delLigne = function(link) {
		// On récupère le div où l'on va supprimer
		var blocDiv = document.getElementById(this.idBlocDiv);
		
		// On récupère le noeud à supprimer
		var divSupp = link.parentNode;
		
		// On supprimer le div du noeud (grace à la fonction récursive)
		blocDiv.removeChild(this.getParent(divSupp, 'div'));
	}