//retourne le numero child de l'objet spécifié
function child_id(obj)
{
	obj_parent=obj.parentNode
	cpt=0
	while(obj_parent.childNodes[cpt]!=obj){cpt++}
	return cpt
}

//retourne le premier td d'une ligne de tableau (on indique un objet dans cette ligne)
function head_line(obj)
{
	cel_obj=obj
	while(cel_obj.tagName!='TD' && cel_obj.tagName!='BODY'){cel_obj=cel_obj.parentNode}
	if(cel_obj.tagName=='TD')
	{
		head_obj=cel_obj.parentNode.firstChild
		return head_obj
	}
	else
	{
		return false
	}
}

//retourne le premier td d'une colonne de tableau (on indique un objet de cette colonne)
function head_col(obj)
{
	cel_obj=obj
	while(cel_obj.tagName!='TD' && cel_obj.tagName!='BODY'){cel_obj=cel_obj.parentNode}
	if(cel_obj.tagName=='TD')
	{
		head_obj=cel_obj
		while(head_obj.tagName!='TBODY' && head_obj.tagName!='BODY'){head_obj=head_obj.parentNode}
		if(head_obj.tagName=='TBODY')
		{
			head_obj=head_obj.firstChild.childNodes[child_id(cel_obj)]
			return head_obj
		}
		else
		{
			return false
		}
	}
	else
	{
		return false
	}
}


//fonctions de creation de tree (arbre) vertical avec menu, sousmenu,soussousmenu...
//case cochable avec héritage, ouverture des sous rubriques au clic
//=>fonctions utilisée par le module webmaker "creer_arbre"
function creer_champ(nom_champ,type_champ,form)
{
	if(!form[nom_champ])
	{
		obj=document.createElement("input")
		obj.type=type_champ
		obj.id=nom_champ
		obj.name=nom_champ
		form.appendChild(obj)
	}

	obj=document.getElementById(nom_champ)
	if(obj.value==""){obj.value="<>"}else{obj.value="<>"+obj.value+"<>"}
	return obj
}

function do_rub(rub,form,id)
{
	//ajout du champ tree_open dans le formulaire spécifié
	tree_open=document.getElementById("tree_open")
	if(tree_open.value==""){tree_open.value="<>"}else{tree_open.value="<>"+tree_open.value+"<>"}

	rub=rub.parentNode.parentNode.parentNode.parentNode.parentNode
	cpt=0
	while(rub.childNodes[cpt] && rub.childNodes[cpt].tagName!="UL"){cpt++}
	if(rub.childNodes[cpt] && rub.childNodes[cpt].className=="wm_tree_rub_close")
	{
		tree_open.value+=id+"<>"
		rub.childNodes[cpt].className="wm_tree_rub_open"
	}
	else if(rub.childNodes[cpt] && rub.childNodes[cpt].className=="wm_tree_rub_open")
	{
		tree_open.value=tree_open.value.replace("<>"+id+"<>","<>")
		rub.childNodes[cpt].className="wm_tree_rub_close"
	}

	if(tree_open.value=="<>"){tree_open.value=""}
	else
	{
		tree_open.value=tree_open.value.substring(2,tree_open.value.length-2)
	}
}

function checkall(liste,etat)
{
	for(cpt=0;cpt<liste.childNodes.length;cpt++)
	{
		if(liste.childNodes[cpt].tagName=="LI")
		{
			cpt2=0
			while(liste.childNodes[cpt].childNodes[cpt2] && liste.childNodes[cpt].childNodes[cpt2].tagName!="TABLE"){cpt2++}
			if(liste.childNodes[cpt].childNodes[cpt2].firstChild.firstChild.firstChild.firstChild.src)
			{
				dest=liste.childNodes[cpt].childNodes[cpt2].firstChild.firstChild.firstChild.firstChild
				champ_on_off=document.getElementById("tree_on_off")
				if(etat=="on")
				{
					champ_on_off.value+=dest.id+"<>";
					dest.src="images/boutons/std/checkbox_on_off.gif"
				}
				else
				{
					champ_on_off.value=champ_on_off.value.replace("<>"+dest.id+"<>","<>");
					dest.src="images/boutons/std/checkbox_off_off.gif"
				}
			}
		}
	}

	for(cpt=0;cpt<liste.childNodes.length;cpt++)
	{
		if(liste.childNodes[cpt].tagName=="LI")
		{
			sous_liste=liste.childNodes[cpt]
			cpt2=0
			while(sous_liste.childNodes[cpt2] && sous_liste.childNodes[cpt2].tagName!="UL"){cpt2++}
			if(sous_liste.childNodes[cpt2])
			{
				checkall(sous_liste.childNodes[cpt2],etat)
			}
		}
	}
}
function do_check(checkbox,form)
{
	src=checkbox.src.split("/").pop().substr(9,2)
	id=checkbox.id//les checkboxs sont des images

	//ajout du champ checkboxes_on_off dans le formulaire spécifié
	tree_on_off=document.getElementById("tree_on_off")
	if(tree_on_off.value==""){tree_on_off.value="<>"}else{tree_on_off.value="<>"+tree_on_off.value+"<>"}

	//ajout du champ checkboxes_on_on dans le formulaire spécifié
	tree_on_on=document.getElementById("tree_on_on")
	if(tree_on_on.value==""){tree_on_on.value="<>"}else{tree_on_on.value="<>"+tree_on_on.value+"<>"}

	if(src=="on")
	{//on decoche la case
		tree_on_off.value=tree_on_off.value.replace("<>"+id+"<>","<>")
		tree_on_on.value=tree_on_on.value.replace("<>"+id+"<>","<>")
		etat="off"
		checkbox.src="images/boutons/std/checkbox_off_off.gif"
	}
	else
	{//on coche la case
		if(tree_on_off.value.indexOf("<>"+id+"<>")==-1){tree_on_off.value+=id+"<>"}
		etat="on"
		checkbox.src="images/boutons/std/checkbox_on_off.gif"
	}

	//cocher les checkbox de niveau inférieur
	liste=checkbox.parentNode.parentNode.parentNode.parentNode.parentNode
	cpt=0
	while(liste.childNodes[cpt] && liste.childNodes[cpt].tagName!="UL"){cpt++}
	liste=liste.childNodes[cpt]

	if(liste){checkall(liste,etat)}

	liste=checkbox.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode
	while(liste.tagName=="UL" && liste.className!="wm_tree")
	{
		cpt=0
		while(liste.parentNode.childNodes[cpt] && liste.parentNode.childNodes[cpt].tagName!="TABLE"){cpt++}
		parent_checkbox=liste.parentNode.childNodes[cpt].firstChild.firstChild.firstChild.firstChild

		tout=true
		aucun=true
		for(cpt=0;cpt<liste.childNodes.length;cpt++)
		{
			if(liste.childNodes[cpt].tagName=="LI")
			{
				cpt2=0
				while(liste.childNodes[cpt].childNodes[cpt2] && liste.childNodes[cpt].childNodes[cpt2].tagName!="TABLE"){cpt2++}
				if(liste.childNodes[cpt].childNodes[cpt2])
				{
					src=liste.childNodes[cpt].childNodes[cpt2].firstChild.firstChild.firstChild.firstChild.src.split("/").pop().substr(9,2)
					if(src=="on")
					{
						aucun=false
					}
					else
					{
						tout=false
					}
				}
			}
		}
		if(tout && parent_checkbox)
		{
			tree_on_off.value+=parent_checkbox.id+"<>"
			parent_checkbox.src="images/boutons/std/checkbox_on_off.gif"
		}
		if(aucun && parent_checkbox)
		{
			tree_on_off.value=tree_on_off.value.replace("<>"+parent_checkbox.id+"<>","<>")
			tree_on_on.value=tree_on_on.value.replace("<>"+parent_checkbox.id+"<>","<>")
			parent_checkbox.src="images/boutons/std/checkbox_off_off.gif"
		}
		if(!aucun && !tout && parent_checkbox)
		{
			tree_on_off.value=tree_on_off.value.replace("<>"+parent_checkbox.id+"<>","<>")
			if(tree_on_on.value.indexOf("<>"+parent_checkbox.id+"<>")==-1)
			{
				tree_on_on.value+=parent_checkbox.id+"<>"
			}
			parent_checkbox.src="images/boutons/std/checkbox_on_on.gif"
		}
		liste=liste.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode
}

	if(tree_on_off.value=="<>"){tree_on_off.value=""}
	else{tree_on_off.value=tree_on_off.value.substring(2,tree_on_off.value.length-2)}

	if(tree_on_on.value=="<>"){tree_on_on.value=""}
	else{tree_on_on.value=tree_on_on.value.substring(2,tree_on_on.value.length-2)}
}

function init_tree(form,value_open,value_on_off,value_on_on)
{
	obj=document.createElement("input")
	obj.type="hidden"
	obj.id="tree_open"
	obj.name="tree_open"
	obj.value=value_open
	form.appendChild(obj)

	obj=document.createElement("input")
	obj.type="hidden"
	obj.id="tree_on_off"
	obj.name="tree_on_off"
	obj.value=value_on_off
	form.appendChild(obj)

	obj=document.createElement("input")
	obj.type="hidden"
	obj.id="tree_on_on"
	obj.name="tree_on_on"
	obj.value=value_on_on
	form.appendChild(obj)
}
