// AddLoadHandler
// Ajoute une fonction au chargement de la page.
function addLoadHandler(handler) {

	if(window.addEventListener) {
		window.addEventListener("load",handler,false);
	} else if(window.attachEvent) {
		window.attachEvent("onload",handler);
	} else if(window.onload) {
		var oldHandler = window.onload;
		window.onload = function piggyback() {
			oldHandler();
			handler();
		};
	} else {
		window.onload = handler;
	}
}

// GetChildsByTagName
// Retourne un tableau des enfants direct de  DOMobj qui sont des <tag>
function getChildsByTagName(DOMobj, tag) {

	var liste=DOMobj.getElementsByTagName(tag);
	var newListe=new Array();

	if(liste!=null) {
		for(var i=0; i<liste.length; i++) {
			var NoeudParent=liste[i].parentNode;
			if(NoeudParent==DOMobj) {
				newListe.push(liste[i]);
			}
		}
	liste=newListe;
	}
	return liste;
}

// GetAncestorByTagName
// Retourne le premier ancêtre de element de type tag
function getAncestorByTagName(element, tag) {
	var parent = element;
	if (tag) {
		while (parent && parent.nodeName != tag) {
			parent = parent.parentNode;
		}
	}
	return parent;
}

// Rw_link
// Fonction de réécriture des liens.
function rw_link(selection, lien) {
	// Récupération de l'id à insérer, de l'adresse à modifier
	var id=document.getElementById(selection).options[document.getElementById(selection).selectedIndex].value;
	var adresse=document.getElementById(lien).href;
	// et des indices des dernier et avant-dernier ";" de l'adresse.
	var indice_fin=adresse.lastIndexOf(";");
	var temp=adresse.substring(0, indice_fin);
	var indice_deb=temp.lastIndexOf(";");

	// Réécriture de l'adresse du lien.
	adresse = adresse.substring(0, indice_deb+1)+id+adresse.substring(indice_fin);
	document.getElementById(lien).href=adresse;
}

// Affiche
// Affiche/Masque un élément
function showHide(p_obj) {
	p_obj.style.display=="block" ? p_obj.style.display="none" : p_obj.style.display="block";
}

// getElementsByClass
// Retourne une collection d'éléments déterminés par leur classe
function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

// Confirmation_action
// Affiche une boite de dialogue demandant la confirmation de l'action demandée.
function confirmation() {
	if(confirm(index_traduction["general__etes_vous_sur"])) {
		return true;
	}
	return false;
}

// AddProposition
// Ajoute un ensemble pour la définition d'une proposition au formulaire de gestion des questions.
function addProposition() {
	// Isolation du conteneur.
	var propositions=document.getElementById('liste_proposition');
	var liProposition=propositions.getElementsByTagName('LI');
	var liToClone=liProposition[liProposition.length-1];

	var newLi=liToClone.cloneNode('true');

	for(node in newLi.childNodes) {
		if(node.nodeName=='input' && node.hasAttribute('type') && node.getAttribute('type')=='radio') {
			node.setAttribute('value', ++NbProposition);
		}
	}

	propositions.appendChild(newLi);
}