var ini = false;
var objOver = null;
var active = false;
var objSender = null;
var valeur = '';

var EditableZone = '_ctl3_DataGrid1';
var datagridName = '_ctl3_DataGrid1';
var TB_EditableName = '_ctl3_TB_Editable';
var TB_EditableIdValue = '_ctl3_TB_EditableIdValue';
var TB_EditableColValue = '_ctl3_TB_EditableColValue';
function AfficheEditableZone(sender, id, col)
{
	if(ini==false)
		Initialise(sender);
		
	if(objSender != null)
	{		
		if(objSender.id != sender.id && sender.id!=TB_EditableName)
		{
			ReInitEditableZone();
		}
	}
	
	document.getElementById(TB_EditableIdValue).value = id;
	document.getElementById(TB_EditableColValue).value = col;
	if(!active)
	{
		objSender = sender;

		var objDiv = document.getElementById(EditableZone);
		var objTB = document.getElementById(TB_EditableName);
		objTB.value = objSender.innerHTML;
		valeur = objSender.innerHTML;
		objSender.innerHTML = '';	
		
		objDiv.style.display='block'; 
		var objMainDiv = objDiv.parentNode;
		objMainDiv.removeChild(objDiv);
	
		objSender.appendChild(objDiv);
		objSender.onclick = function onclick(event){ void(0); };
		active = true;		
		objTB.focus();
	}
}
function SourisOut()
{
	if(objOver == null)
		return;
	if(active && objOver.tagName == 'TABLE' && objOver.id == datagridName)
		ReInitEditableZone();
}
function ReInitEditableZone()
{
if(objSender == null)
	return;
	// Annulation de la modification
	var objDiv = document.getElementById(EditableZone);
	var objMainDiv = document.getElementById("MainEditableZone");
	objDiv.style.display='none'; 


	if(objSender!=objDiv.parentNode)
		objDiv.parentNode.removeChild(objDiv);
	else
		objSender.removeChild(objDiv);
	objMainDiv.appendChild(objDiv);

	objSender.innerHTML=valeur;
	active=false;
		
	var id = document.getElementById(TB_EditableIdValue).value;
	var col = document.getElementById(TB_EditableColValue).value;
	objSender.onclick = function onclick(event){ AfficheEditableZone(this,id,col); }; 
	objSender = null;
}
function SourisMove(event)
{
	if(event==null)
		objOver =  event;
	else
		objOver =  event.srcElement;
}
function getRealPos (elm)
{
	intPos = 0;
	elm = elm.previousSibling;
	while ((elm!= null) && (elm.tagName!="BODY"))
	{
		intPos += elm.width - 0;
		elm = elm.previousSibling;
	}
	return intPos;
}
function getParent(element, parentTagName) {
	if ( ! element )
		return null;
	else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
		return element;
	else
		return getParent(element.parentNode, parentTagName);
}

function Initialise(objSender)
{
	var obj = getParent(objSender,'TABLE');
	
	var num = obj.id;
	num = num.substring(0,num.indexOf('_DataGrid'));
	
	EditableZone = num +'_EditableZone';
	datagridName = num +'_DataGrid1'; //_ctl3_
	TB_EditableName = num +'_TB_Editable';
	TB_EditableIdValue = num +'_TB_EditableIdValue';
	TB_EditableColValue = num +'_TB_EditableColValue';

	var indice = 0;
	var tab = document.getElementById(datagridName);
	tab.onmousemove = function onmousemove(event){ SourisMove(event); };
	tab.onmouseout = function onmouseout(event){ SourisOut(event); };
	
	for(var j=0;j<tab.rows.length;j++)
	{
		var row = tab.rows[j];
		for(var i=0;i<row.cells.length;i++)
		{			
			if(row.cells[i].innerHTML.substring(0,5).toLowerCase() == "<div ")
			{
				var mydiv = row.cells[i].childNodes[0];
				mydiv.id = 'div_'+ indice;
			}
			else
			{
				if(row.cells[i].onclick == undefined)
				{
					row.cells[i].onclick = function onclick(event){ ReInitEditableZone(); };
				}
			}
			indice++;
		}
	}
}
function ModifValue(obj)
{
	if(obj.init!=obj.value)
		obj.style.color='orange';
	//window.status=obj.init +' '+ obj.value;
}

