	
	/**
	* Fonction à mettre dans un fichier default.js
	*/
	
	function object_showHideWithCondition(id, object, value, inverse)
	{
		var val = value.split(";");
		if(!inverse)
		{
			for(var i = 0; i < val.length; i++)
			{
				/*if("heightMenuNavigation" == id)
				{
					alert(object.value+" "+value+" "+val[i]);
				}*/
				
				if(object.value == val[i])
				{
					object_show(id);
					break;
				}
				else
					object_hide(id);
			}
		}
		else
		{
			for(var i = 0; i < val.length; i++)
			{
				if(object.value == val[i])
				{
					object_hide(id);
					break;
				}
				else
					object_show(id);
			}
		}
	}
	
	function object_showHide(id)
	{
		var elt = document.getElementById(id);
		
		if(elt)
		{
			if(elt.style.display == "none")
			{
				object_show(id);
			}
			else
			{
				object_hide(id);
			}
		}
	}
	
	function object_show(id)
	{
		var elt = document.getElementById(id);
		
		if(elt)
		{
			elt.style.visibility = "visible";
			elt.style.display = "";
		}
	}
	
	function object_showByObject(elt)
	{
		if(elt)
		{
			elt.style.visibility = "visible";
			elt.style.display = "";
		}
	}
	
	function object_hide(id)
	{
		var elt = document.getElementById(id);
		
		if(elt)
		{
			elt.style.visibility = "hidden";
			elt.style.display = "none";
		}
	}
	
	
	function object_hideByObject(elt)
	{
		if(elt)
		{
			elt.style.visibility = "hidden";
			elt.style.display = "none";
		}
	}
	
	function object_changeImageIfDisplay(idImage, urlImageHide, urlImageShow)
	{
		var eltImage = document.getElementById(idImage);

		if(eltImage)
		{
			if(eltImage.name == "cacher")
			{
				eltImage.src = urlImageHide;
				eltImage.name = "";
			}
			else
			{
				eltImage.src = urlImageShow;
				eltImage.name = "cacher";
			}
		}
	}
	
	/**
	* Fonction permettant de récupérer l'abscisse d'un objet.
	*/
	function getPosX(obj)
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
			
		return curleft;
	}
	
	/**
	* Fonction permettant de récupérer l'ordonnée d'un objet.
	*/
	function getPosY(obj)
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curleft += obj.y;
			
		return curleft;
	}
	
	/**
	* Fonction permettant de récupérer la hauteur d'un objet.
	*/
	function getHeight(obj)
	{
		return obj.offsetHeight;
	}
	
	/**
	* Fonction permettant de récupérer la largeur d'un objet.
	*/
	function getWidth(obj)
	{
		return obj.offsetWidth;
	}

	function object_getTdByPosX(eltTr, currentX)
	{
		for(var i = 0; i < eltTr.childNodes.length; i++)
		{
			var elt = eltTr.childNodes[i];
			if(elt.nodeName == "TD")
			{
				var nodeX = getPosX(elt);
				if(currentX == nodeX)
					return elt;
			}
		}
		
		return "";
	}
	
	/**
	* Fonction permettant de récupérer le label d'un select.
	* Paramètre : objet de type select
	*/
	function getSelectLabelWithObject(elt)
	{
		if( elt && elt.type == "select-one")
		{
			var index = elt.selectedIndex;
			var coef = 1;

			if(navigator.appName == NAVIGATEUR_INTERNET_EXPLORER)
	 			coef = 2;
	 			
	 		var resultat = "";
	 		if(elt.childNodes[(index*coef)])
	 		{
		 		resultat = elt.childNodes[(index*coef)].text;
		 		
		 		// Le resultat n'est pas le même si on est sur un <html:select et un <select
		 		if(!resultat)
		 			resultat = elt.childNodes[(index*coef)+1].text;
 			}

			return resultat;
		}
		else
		{
			alert("This object is not select type.");
		}
		
		return "undefined";
	}
	
	/**
	* Fonction permettant de récupérer le label d'un select.
	* Paramètre : id or name of select
	*/
	function getSelectLabelWithId(id)
	{
		var elt = document.getElementById(id);
		
		if(!elt)
			elt = document.getElementsByName(id)[0];

		if(elt)
		{
			return getSelectLabelWithObject(elt);
		}
		else
		{
			alert("This object does not exist.");
		}
		
		return "undefined";
	}
	
	/**
	* Fonction permettant de trouver le fils ou sous fils d'un élément suivant son type
	* Paramètre : element
	* Paramètre : Type de l'élément
	*/
	function trouverFils(objet, type)
	{
		for(var i = 0; i < objet.childNodes.length; i++)
		{
			var elt = objet.childNodes[i];

			if(elt.nodeName == type)
				return elt;
		}

		return objet;
	}
	
	function object_getChildByType(objet, type)
	{
		for(var i = 0; i < objet.childNodes.length; i++)
		{
			var elt = objet.childNodes[i];

			if(elt.nodeName == type)
				return elt;
		}

		return objet;
	}
	
	function object_getChildByTypeRec(objet, type)
	{
		var result = objet;
		for(var i = 0; i < objet.childNodes.length; i++)
		{
			var elt = objet.childNodes[i];

			if(elt.tagName == type)
			{
				return elt;
			}
			else
			{
				result = object_getChildByTypeRec(elt, type);
				if(result.tagName == type)
					return result;
			}
		}

		return result;
	}
	
	function object_getChildrenByTypeRec(object, type, list)
	{
		if(object)
		{
			for(var i = 0; i < object.childNodes.length; i++)
			{
				var elt = object.childNodes[i];
				if(elt.tagName == type)
				{
					list.push(elt);
				}
				else
				{
					object_getChildrenByTypeRec(elt, type, list);
				}
			}
		}
	}
	
	function object_getChild(objet, number)
	{
		var index = 0;
		for(var ii = 0; ii < objet.childNodes.length; ii++)
		{
			var elt = objet.childNodes[ii];
			if(elt.tagName)
			{
				if(index == number)
					return elt;
				
				index++;
			}
		}

		return "";
	}
	
	/**
	* Fonction permettant de trouver le parent d'un élément suivant son type et s'arrete au body
	* Paramètre : element
	* Paramètre : Type de l'élément
	*/
	function object_getParentByType(objet, type)
	{
		var elt = objet;
		while(elt.nodeName != type && elt.nodeName != "BODY")
		{	
			if(!elt.parentNode)
				break;
			elt = elt.parentNode;	
			
		}
		
		if(elt.tagName == type)
			return elt;
		else
			return "";
	}
	
	/**
	* Fonction permettant de trouver le parent d'un élément suivant son type
	* Paramètre : element
	* Paramètre : Type de l'élément
	*/
	function object_table_getParentByType(objet, type)
	{
		var elt = objet;
		while(elt.nodeName != type)
		{	
			if(!elt.parentNode)
				break;
			elt = elt.parentNode;	
			
		}
		
		if(elt.tagName == type)
			return elt;
		else
			return "";
	}
	
	/**
	* Fonction permettant de donner la valeur d'un dic ou d'un span
	* Paramètre : element
	*/
	function getValueDivOrSpan(elt)
	{
		if(elt && (elt.tagName == "SPAN" || elt.tagName == "DIV" || elt.tagName == "TD"))
		{
			for(i = 0; i < elt.childNodes.length; i++)
			{
				var obj = elt.childNodes[i];
				return obj.nodeValue;
			}
			
		}
		
		return "";
	}
	
	/**
	* Fonction permettant de donner le nom d'un dic ou d'un span
	* Paramètre : element
	*/
	function getNameAttributeDivOrSpan(elt)
	{
		if(elt && (elt.tagName == "SPAN" || elt.tagName == "DIV"))
		{
			var AttributeNode = elt.getAttributeNode("name");
			return AttributeNode.value;
		}
		
		return "";
	}
	
	/**
	* Fonction permettant de donner le nom d'un dic ou d'un span
	* Paramètre : element
	*/
	function getValueAttributeDivOrSpan(elt)
	{
		if(elt && (elt.tagName == "SPAN" || elt.tagName == "DIV"))
		{
			var AttributeNode = elt.getAttributeNode("value");
			return AttributeNode.value;
		}
		
		return "";
	}
	
	function objects_setStatus(id)
	{
		var eltStatus = document.getElementById("status");
		if(eltStatus)
		{
			var elt = document.getElementById(id);
			if(elt)
			{
				if(elt.style.display == "none")
				{
					eltStatus.value = eltStatus.value.replace("["+id+"]-", "");
				}
				else
				{
					eltStatus.value += "["+id+"]-";
				}	
			}
		}
	}
	
	function setCurrentNode(elt)
	{
		var currentElt = document.getElementById("currentElt");
		if(currentElt)
			currentElt.value =	elt.id;
			
		objects_setClassName(elt);
	}
	
	function objects_setClassName(elt)
	{
		if(elt.className == "node title1")
			elt.className = "currentNode currentNodeBold";
		else
			elt.className = "currentNode";
	}
	
	function objects_initStatus()
	{
		var eltStatus = document.getElementById("status");
		if(eltStatus)
		{
			var tab = eltStatus.value.split("-");
			for(var i = 0; i < tab.length-1; i++)
			{
				var id = tab[i].replace("[", "");	
				id = id.replace("]", "");
				//alert(id);	
				var elt = document.getElementById(id);
				if(elt)
				{
					elt.style.display = "block";
					var idImage = id.replace("node_", "");
					var eltImage = document.getElementById("img_"+idImage);

					if(eltImage)
					{
						eltImage.src = "ressources/icon/treeNode_expand.gif";
						eltImage.name = "cacher";
					}
				}
			}
		}
		
		var currentElt = document.getElementById("currentElt");
		if(currentElt && currentElt.value)
		{
			var elt = document.getElementById(currentElt.value);
			if(elt)
				objects_setClassName(elt);
		}
	}
	
	function deplierArbre(list, id)
	{
		var isInFrame = document.getElementById("isinframe");
	
		if(!isInFrame)
		{
			var eltStatus = document.getElementById("status");
			if(eltStatus)
			{
				eltStatus.value = list;
			}
			var elt = document.getElementById("label_"+id);
			if(elt)
				objects_setClassName(elt);
			var currentElt = document.getElementById("currentElt");
			if(currentElt && elt)
				currentElt.value =	elt.id;		
		}
		else
		{
			var eltStatus = window.parent.document.getElementById("status");
			if(eltStatus)
			{
				eltStatus.value = list;
			}
			var elt = window.parent.document.getElementById("label_"+id);
			if(elt)
				objects_setClassName(elt);
			var currentElt = window.parent.document.getElementById("currentElt");
			if(currentElt && elt)
				currentElt.value =	elt.id;	
		}
	}
	
	function replierArbre()
	{
		var eltStatus = document.getElementById("status");
		if(eltStatus)
		{
			eltStatus.value = "";
		}
		
		resetCurrentNode();
	}
	
	function object_getIdNavigationParent(idNodeCurrent)
	{

		var list = "";
		var eltNode = document.getElementById("label_"+idNodeCurrent);
		
		if(eltNode)
		{
			var parentNode = eltNode.parentNode;
			
			while(parentNode.id.indexOf("node_") != -1 && parentNode.id != "node_")
			{
				list += "["+parentNode.id+"]-";
				parentNode = parentNode.parentNode;
			}
		}
		
		return list;
	}
	
	function resetCurrentNode()
	{
		var currentElt = document.getElementById("currentElt");
		if(currentElt)
			currentElt.value =	"";
	}

	/**
	* Cette fonction permet de donner le nombre de colonne d'un tableau
	*/
	function object_table_getNbCol(eltTable)
	{
		var tbody = eltTable.tBodies[0];
		var nbLine = 0;
		if(tbody.rows.length > 0)
		{
			for(var i = 0; i < tbody.rows[0].childNodes.length; i++)
			{
				var elt = tbody.rows[0].childNodes[i];
	
				if(elt.nodeName == "TD")
					nbLine++;
			}
		}
		
		return nbLine;
	}
	
	/**
	* Cette fonction permet de donner le nombre de ligne d'un tableau
	*/
	function object_table_getNbLine(eltTable)
	{
		if(eltTable.tBodies)
		{
			var tbody = eltTable.tBodies[0];
			return tbody.rows.length;
		}
		else
			return eltTable.childNodes.length;
	}
	
	/**
	* Cette fonction permet de connaitre le numéro d'ordre d'un td
	*/
	function object_table_getTDNumber(eltTr, eltTdCurrent)
	{
		var index = 0;
		for(var jj = 0; jj < eltTr.childNodes.length; jj++)
		{
			var eltTd = eltTr.childNodes[jj];
			if(eltTd.tagName == "TD")
			{
				if(eltTd == eltTdCurrent)
				{
					break;
				}
				index++;
			}
		}
		/*var tbody = eltTable.tBodies[0];
		var index = 0;
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				index = 0;
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName == "TD")
					{
						if(eltTd == eltTdCurrent)
						{
							break;
						}
						index++;
					}
				}
			}
		}	*/
		
		return index;
	}
	
	/**
	* Cette fonction permet d'ajouter une colonne dans un tableau
	*/
	function object_table_addColumn(eltTable, eltTd, position, border)
	{
		var tbody = eltTable.tBodies[0];
	
		if(position == "first")
			position = 0;
		else if(position == "last")
			position = object_table_getNbCol(eltTable);
		else if(position == "before" || position == "after")
		{
			for(var ii = 0; ii < tbody.childNodes.length; ii++)
			{
				var eltTr = tbody.childNodes[ii];
				if(eltTr.tagName && eltTr.tagName == "TR")
				{
					var index = 0;
					for(var jj = 0; jj < eltTr.childNodes.length; jj++)
					{
						var eltTdTemp = eltTr.childNodes[jj];
						if(eltTdTemp.tagName && eltTdTemp.tagName == "TD")
						{
							if(eltTd == eltTdTemp)
							{
								if(position == "after")
								{
									position = index+1;
								}
								else if(position == "before")
								{
									position = index;
								}
							}
							index++;
						}
					}
				}
			}
		}

		var nbLine = 0;
		if(tbody.rows.length > 0)
		{
			for(var ii = 0; ii < tbody.childNodes.length; ii++)
			{
				var eltTr = tbody.childNodes[ii];
				if(eltTr.tagName && eltTr.tagName == "TR")
				{
					
					var eltTd = eltTr.insertCell(position);
					eltTd.innerHTML = "&nbsp;&nbsp;&nbsp;";
					eltTd.style.border = border;
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de supprimer la colonne sélectionnée
	*/
	function object_table_deleteColumn(eltTable, eltTd)
	{
		var tbody = eltTable.tBodies[0];
		var position = 0;
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				var index = 0;
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTdTemp = eltTr.childNodes[jj];
					if(eltTdTemp.tagName && eltTdTemp.tagName == "TD")
					{
						if(eltTd == eltTdTemp)
						{
							position = index;
						}
						index++;
					}
				}
			}
		}
			
		var tbody = eltTable.tBodies[0];
		if(tbody.rows.length > 0)
		{
			for(var ii = 0; ii < tbody.childNodes.length; ii++)
			{
				var eltTr = tbody.childNodes[ii];
				if(eltTr.tagName && eltTr.tagName == "TR")
				{
					var eltTd = eltTr.deleteCell(position);
				}
			}
		}
	}
	
	/**
	* Cette fonction permet d'ajouter une ligne dans un tableau
	*/
	function object_table_addLine(eltTable, eltTd, position, border)
	{
		var tbody = eltTable.tBodies[0];
		
		if(position == "first")
			position = 0;
		else if(position == "last")
			position = object_table_getNbLine(eltTable);
		else if(position == "before" || position == "after")
		{
			var eltTr = eltTd.parentNode;
			var index = 0;
			for(var ii = 0; ii < tbody.childNodes.length; ii++)
			{
				var eltTrCurrent = tbody.childNodes[ii];
				if(eltTrCurrent.tagName && eltTrCurrent.tagName == "TR")
				{
					if(eltTr == eltTrCurrent)
					{
						if(position == "after")
						{
							position = index+1;
						}
						else if(position == "before")
						{
							position = index;
						}
					}
					index++;
				}
			}
		}

		var nbColumn = object_table_getNbCol(eltTable);

		var eltTr = eltTable.insertRow(position);
		for(var i = 0; i < nbColumn; i++)
		{
			var eltTd = eltTr.insertCell(0);
			eltTd.innerHTML = "&nbsp;&nbsp;&nbsp;";
			eltTd.style.border = border;
		}
	}

	/**
	* Cette fonction permet de supprimer la ligne sélectionnée
	*/
	function object_table_deleteLine(eltTable, eltTd)
	{
		try
		{
			var tbody = eltTable.tBodies[0];
			
			if(eltTd && eltTd.parentNode)
				tbody.removeChild(eltTd.parentNode);
		}
		catch(e){}
	}
	
	/**
	* Cette fonction permet de changer la couleur de fond d'une cellule
	*/
	function object_table_changeCellColor(eltTd, color)
	{
		eltTd.style.backgroundColor = color;
	}
	
	/**
	* Cette fonction permet de changer la couleur d'une table
	*/
	function object_table_changeTableColor(eltTable, color)
	{
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						object_table_changeCellColor(eltTd, color);
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de changer la couleur d'une colonne
	*/
	function object_table_changeColumnColor(eltTable, eltTdCurrent, color)
	{
		var tdNumber = object_table_getTDNumber(eltTdCurrent.parentNode, eltTdCurrent);
		
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				var index = 0;
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName == "TD")
					{
						if(index == tdNumber)
							object_table_changeCellColor(eltTd, color);
						index++;
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de changer la couleur d'une ligne
	*/
	function object_table_changeLineColor(eltTable, eltTdCurrent, color)
	{
		var eltTr = object_table_getParentByType(eltTdCurrent, "TR");
		if(eltTr)
		{
			for(var jj = 0; jj < eltTr.childNodes.length; jj++)
			{
				var eltTd = eltTr.childNodes[jj];
				if(eltTd.tagName == "TD")
				{
					object_table_changeCellColor(eltTd, color);
				}
			}
		}
	}
	
	
	/**
	* Cette fonction permet de changer la couleur de bordure de la table
	*/
	function object_table_changeBorderColor(eltTable, color)
	{
		eltTable.style.borderColor = color;
		
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						eltTd.style.borderColor = color;
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de changer la taille de bordure de la table
	*/
	function object_table_changeBorderSize(eltTable, size)
	{
		if(size == "0px")
		{
			eltTable.style.borderStyle = "dotted";
			eltTable.style.borderWidth = "1px";
			//eltTable.style.borderColor = "#BBBBBB";
		}
		else
		{
			eltTable.style.borderStyle = "solid";
			eltTable.style.borderWidth = size;
		}
		//eltTable.style.borderWidth = size;
		
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						if(size == "0px")
						{
							eltTd.style.borderStyle = "dotted";
							eltTd.style.borderWidth = "1px";
						}
						else
						{
							eltTd.style.borderStyle = "solid";
							eltTd.style.borderWidth = size;
						}
						//eltTd.style.borderWidth = size;
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de récupérer le border
	*/
	function object_table_getBorder(eltTable)
	{
		var border = "";
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						if(eltTd.style.border.split(" ").length > 2)
						{
							border = eltTd.style.border;
						}
					}
				}
			}
		}
		
		return border;
	}
	
	/**
	* Cette fonction permet de changer la taille de bordure de la table
	*/
	function object_table_changeWhiteSpace(eltTable, wrap)
	{
		eltTable.style.whiteSpace = wrap;
		
		var tbody = eltTable.tBodies[0];
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						eltTd.style.whiteSpace = wrap;
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de mettre une taille fixe à chaque cellule
	*/
	function object_table_changeProportionalSizeCells(eltTable, newWidth, newHeight)
	{
		var tbody = eltTable.tBodies[0];
		var nbTd = 0;
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						nbTd++;
					}
				}
			}
			break;
		}
		
		var unityWidth = "";
		var unityHeight = "";
		if(newWidth != "")
		{
			if(newWidth.indexOf("%"))
				unityWidth = "%";
			if(newWidth.indexOf("px"))
				unityWidth = "%";
					
			newWidth = ((newWidth.replace("%", "").replace("px", "")*1)/nbTd).toFixed(0);
		}
		if(newHeight != "")
		{
			if(newHeight.indexOf("%"))
				unityHeight = "%";
			if(newHeight.indexOf("px"))
				unityHeight = "%";
					
			newHeight = ((newHeight.replace("%", "").replace("px", "")*1)/nbTd).toFixed(0);
		}
		
		for(var ii = 0; ii < tbody.childNodes.length; ii++)
		{
			var eltTr = tbody.childNodes[ii];
			if(eltTr.tagName && eltTr.tagName == "TR")
			{
				for(var jj = 0; jj < eltTr.childNodes.length; jj++)
				{
					var eltTd = eltTr.childNodes[jj];
					if(eltTd.tagName && eltTd.tagName == "TD")
					{
						if(newWidth != "")
							eltTd.style.width = newWidth+unityWidth;
						if(newHeight != "")
							eltTd.style.height = newHeight+unityHeight;
					}
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de fusionner la céllule de gauche
	*/
	function object_table_fusionCells(eltTdCurrent, action)
	{
		//var eltTable = object_table_getParentByType(eltTdCurrent, "TABLE");
		if(action == "fusionLeftCell")
		{
			//var tdNumber = object_table_getTDNumber(eltTdCurrent.parentNode, eltTdCurrent);
			//var eltPreviousTd = object_getChild(eltTdCurrent.parentNode, tdNumber-1);
			var eltPreviousTd = eltTdCurrent.previousSibling;
			if(eltPreviousTd)
			{
				//eltPreviousTd.style.backgroundColor = "red";
				eltPreviousTd.innerHTML += " "+eltTdCurrent.innerHTML;
				eltPreviousTd.colSpan = eltPreviousTd.colSpan+eltTdCurrent.colSpan;
				eltTdCurrent.parentNode.removeChild(eltTdCurrent);
			}
		}
		else if(action == "fusionRightCell")
		{
			var eltNextTd = eltTdCurrent.nextSibling;
			if(eltNextTd)
			{
				//eltPreviousTd.style.backgroundColor = "red";
				eltTdCurrent.innerHTML += " "+eltNextTd.innerHTML;
				eltTdCurrent.colSpan = eltTdCurrent.colSpan+eltNextTd.colSpan;
				eltTdCurrent.parentNode.removeChild(eltNextTd);
			}
		}
		else if(action == "fusionTopCell")
		{
			var eltPreviousTr = eltTdCurrent.parentNode.previousSibling;
			if(eltPreviousTr)
			{
				var currentX = getPosX(eltTdCurrent);
				var eltPreviousTd = object_getTdByPosX(eltPreviousTr, currentX);
				if(eltPreviousTd)
				{
					eltPreviousTd.innerHTML += "<br>"+eltTdCurrent.innerHTML;
					eltPreviousTd.rowSpan = eltPreviousTd.rowSpan + eltTdCurrent.rowSpan;
					eltTdCurrent.parentNode.removeChild(eltTdCurrent);
				}
			}
		}
		else if(action == "fusionBottomCell")
		{
			var eltNextTr = eltTdCurrent.parentNode.nextSibling;
			if(eltNextTr)
			{
				var currentX = getPosX(eltTdCurrent);
				var eltNextTd = object_getTdByPosX(eltNextTr, currentX);
				if(eltNextTd)
				{
					eltTdCurrent.innerHTML += "<br>"+eltNextTd.innerHTML;
					eltTdCurrent.rowSpan = eltNextTd.rowSpan + eltTdCurrent.rowSpan;
					eltNextTd.parentNode.removeChild(eltNextTd);
				}
			}
		}
	}
	
	/**
	* Cette fonction permet de fusionner la céllule de gauche
	*/
	function object_table_ungroupCells(eltTdCurrent, action)
	{
		try
		{
			if(action == "ungroupLeftCell")
			{	
				var tdNumber = object_table_getTDNumber(eltTdCurrent.parentNode, eltTdCurrent);
				var eltTd = eltTdCurrent.parentNode.insertCell(tdNumber);
				eltTd.style.border = eltTdCurrent.style.border;
				eltTdCurrent.colSpan = eltTdCurrent.colSpan-1; 
			}
			else if(action == "ungroupRightCell")
			{
				var tdNumber = object_table_getTDNumber(eltTdCurrent.parentNode, eltTdCurrent);
				var eltTd = eltTdCurrent.parentNode.insertCell(tdNumber+1);
				eltTd.style.border = eltTdCurrent.style.border;
				eltTdCurrent.colSpan = eltTdCurrent.colSpan-1; 
			}
			else if(action == "ungroupTopCell")
			{
				var eltNextTr = eltTdCurrent.parentNode.nextSibling;
				if(eltNextTr)
				{
					eltTdCurrent.rowSpan = eltTdCurrent.rowSpan-1; 
					var currentX = getPosX(eltTdCurrent);
					var eltNextTd = object_getTdByPosX(eltNextTr, currentX);
					if(eltNextTd)
					{
						var tdNumber = object_table_getTDNumber(eltNextTr, eltNextTd);
						var eltTd = eltNextTr.insertCell(tdNumber);
						eltTd.style.border = eltTdCurrent.style.border;
						eltTd.innerHTML = eltTdCurrent.innerHTML;
						eltTdCurrent.innerHTML = "";
					}
				}
			}
			else if(action == "ungroupBottomCell")
			{
				var eltNextTr = eltTdCurrent.parentNode.nextSibling;
				if(eltNextTr)
				{
					eltTdCurrent.rowSpan = eltTdCurrent.rowSpan-1; 
					var currentX = getPosX(eltTdCurrent);
					var eltNextTd = object_getTdByPosX(eltNextTr, currentX);
					if(eltNextTd)
					{
						var tdNumber = object_table_getTDNumber(eltNextTr, eltNextTd);
						var eltTd = eltNextTr.insertCell(tdNumber);
						eltTd.style.border = eltTdCurrent.style.border;
					}
				}
			}
		}
		catch(e){}
	}