// JavaScript Document
var str_deploy = "+";
var str_collapse = "-";

var str_allOpen = "Ouvrir toutes les rubriques";
var str_allClose = "Fermer toutes les rubriques";

var bool_allOpen = true;

var aLinksShowAll = new Array();
var aRubs = new Array();


function getElementbyClass(classname, rootobj) {

	var debug = "classname : "+classname+"\n";

	// alert(typeof(rootobj));

	if (typeof(rootobj) == "undefined") {
		var rootobj=document.all ? document.all : document.getElementsByTagName("*");
	}
	var temparray=new Array();
	var inc=0;

	for (i=0; i<rootobj.length; i++){

		if (rootobj[i].className==classname) {
			debug = debug + rootobj[i] +"\n";

			temparray[inc++]=rootobj[i];
		}
	}

	// alert(debug);
	return(temparray);

}

function getRatioOpen() {

	var numCorpsOpen = 0;

	// Affichage de l'HTML contenu dans la class "corps"
	// alert(aRubs[0].getElementsByTagName("div")[1].getElementsByTagName("div")[0].innerHTML);

	for (i=0; i<aRubs.length; i++) {

		// alert(aRubs[i]);
		// alert('getRatioOpen() : aRubs['+i+'].getElementsByTagName("div")[1].getElementsByTagName("div")[0].style.display = '+aRubs[i].getElementsByTagName("div")[1].getElementsByTagName("div")[0].style.display);

		if (aRubs[i].getElementsByTagName("div")[1].getElementsByTagName("div")[0].style.display == "") {
			numCorpsOpen++;
		}
	}
	return( (aRubs.length > 0 ? numCorpsOpen / aRubs.length : 0) );
}

function updateLinksShowAll() {
	var i;

	/*
	for (i=0; i<aLinksShowAll.length; i++) {
		// alert("i = "+i+" : "+aLinksShowAll[i].getElementsByTagName("span")[0].innerHTML);
	}
	*/

	if (getRatioOpen() > 0.5) {
		// plus de la moitié des rubrique sont ouvertes, on change le lien à fermer
		for (i=0; i<aLinksShowAll.length; i++)
			aLinksShowAll[i].getElementsByTagName("span")[0].innerHTML = str_allClose;
		bool_allOpen = true;

	} else {
		for (i=0; i<aLinksShowAll.length; i++)
			aLinksShowAll[i].getElementsByTagName("span")[0].innerHTML = str_allOpen;
		bool_allOpen = false;
	}

}

function showhide(id, open){
	
	if (document.getElementById('rub'+id)) {
		
		// div contenant le texte de la rubrique
		var corps = aRubs[id-1].getElementsByTagName("div")[1].getElementsByTagName("div")[0];
		// span contenant le signe '+' et '-'
		var ctrlA = aRubs[id-1].getElementsByTagName("div")[0].getElementsByTagName("span")[0];
		// titre de la partie à déployer
		var ctrlB = aRubs[id-1].getElementsByTagName("div")[1].getElementsByTagName("h3")[0];

		// alert(id+" : "+typeof(corps));

		if ((typeof(open) == "boolean" && open == false) || (corps.style.display != "none" && typeof(open) == "undefined")) {
			// fermeture
			// alert('fermeture : open = '+open);
			corps.style.display = "none";
			ctrlA.innerHTML = str_deploy;
			ctrlB.className = "";

		} else if ((typeof(open) == "boolean" && open == true) || (corps.style.display == "none"  && typeof(open) == "undefined")) {
			// ouverture
			// alert('ouverture : open = '+open);
			corps.style.display = "";
			ctrlA.innerHTML = str_collapse;
			ctrlB.className = "open";

		}

	}

	if (typeof(open) == "undefined") {
		// L'utilisateur déploie chaque paragraphe l'un après l'autre
		updateLinksShowAll();
	}

}

function showhideall() {
	var i;

	bool_allOpen = (bool_allOpen ? false : true);

	// alert(bool_allOpen);

	for (i=0; i<aRubs.length; i++) {
		showhide(i+1, bool_allOpen);
	}
	updateLinksShowAll();
}

function do_onload() {
	aLinksShowAll = getElementbyClass("divCtrlD");
	aRubs = getElementbyClass("rub");

	if (aRubs.length != 1) {
		// On referme au chargement
		showhideall();
	}
	// alert(document.getElementsByTagName("*"));
}