/*******************************************************************
*	Renvoie la coordonnée en X/Y du curseur (compatible IE et NC)
*******************************************************************/		
function getXmouse(e){	
	return((navigator.appName=='Netscape') ? e.pageX : event.clientX);			
}
function getYmouse(e){
	return((navigator.appName=='Netscape') ? e.pageY : event.clientY);
}

/*******************************************************************
********************************************************************		
* Objet representant l'element deplacé
********************************************************************
*******************************************************************/		
var Drag = function(id) {
	/******************************************************************
	* ATTRIBUTS
	******************************************************************/			
	this.parent = Objet;
	this.parent(id);
	var self = this; //ruse pour pouvoir faire document.onX=monobjet.mafunction, pbm de contexte
	this.init=false;
	this.init_x = 0;
	this.init_y = 0;
	
	/*******************************************************************
	*	Renvoie la coordonnée en X du curseur (compatible IE et NC)
	*	Methode de l'objet Dragged
	*
	*	PARAMETRES
	*	e : l'evenement qui marque la prise de position
	*
	*	RESULTAT
	*	la coordonnée x du curseur
	*******************************************************************/
	this.move_drag = function(e) {								
		if(!self.init)
		{
			self.init_x = getXmouse(e) - self.getX();
			self.init_y = getYmouse(e) - self.getY();
			self.init = true;
		}				
		self.setX(getXmouse(e)-self.init_x);
		self.setY(getYmouse(e)-self.init_y);
		
		return false;
	}
		
	/*******************************************************************
	*	Arrete le deplacement de l'element
	*
	*	PARAMETRES
	*
	*	RESULTAT
	*	Reinitialise le tout
	*******************************************************************/			
	this.stop_drag = function() {
		document.onmouseup = null;
		document.onmousemove = null;
		self.init = false;
	}					
	
	/*******************************************************************
	*	Initialise le drag'n'drop
	*
	*	PARAMETRES
	*	target : le lien vers l'element à déplacer
	*
	*	RESULTAT
	*	Demarre la capture de l'evenement MOUSEMOVE et MOUSEUP et initialise les variables :
	*	- init_X : decalage en X du curseur, par rapport au X de l'objet, lors du clic
	*	- init_Y : "" Y ""
	*	- drag_target : lien vers l'element à déplacer 
	*******************************************************************/		
	this.start_drag = function() {
		if(navigator.appName == 'Netscape')
		{
			document.captureEvents(Event.mousemove);
			document.captureEvents(Event.mouseup);
		}
		document.onmouseup = self.stop_drag;
		document.onmousemove = self.move_drag;
		return false;					
	}
	
	this.start_drag();
}