function selObj(e)
	{ // sélection de l'objet qui a généré l'évènement
	selection=gk?e.target:event.srcElement;
	}
function initdrag()
	{
	addEvent(document,"mousedown",drag);
	addEvent(document,"mousemove",bouge);
	addEvent(document,"mouseup",drop);
	}
function drag(e)
	{
	selObj(e);
	if (selection.id==div_name && div_selection==document)
		{  // objet est déplaçable
		div_selection=selection;
		selection=document; // le capture
		difx = px - div_selection.offsetLeft;
		dify = py - div_selection.offsetTop;
		}
	return false;
	}
function bouge(e)
	{ // suit la souris
	selObj(e);
	px=gk?e.pageX:event.clientX;
	py=gk?e.pageY:event.clientY;
	if(div_selection != document)
		{
		with(div_selection.style)
			{
			left=(px - difx) + 'px';
			top=(py - dify) +'px';
			}
		}
	return false;
	}
function drop(e)
	{ // dépose l'objet
	div_selection=document; // annule la sélection
	}
function addEvent(obj,evType,fn,capt)
	{ // ajoute un événement sans écraser l'éxistant.
	if(obj.addEventListener)
		{
		obj.addEventListener(evType,fn,capt);
		return true;
		} // NS6+
	else if(obj.attachEvent)
		{
		obj.attachEvent("on"+evType,fn); // IE 5+
		}
	else
		{
		return false;
		}
	}
div_selection=document;
gk=window.Event?1:0/*Gecko*/;
addEvent(window,"load",initdrag);
