var iSourisX, iSourisY, iBoutonSouris, eElementSouris, eElementDeplace;

function mouseMove(ev){
	ev = ev || window.event;
	
	//on récupère l'élément pointé par la souris
	eElementSouris = ev.target || ev.srcElement;
	
	//on récupère les coordonnées de la souris
	if(ev.pageX || ev.pageY){
		iSourisX = ev.pageX;
		iSourisY = ev.pageY;
	}
	else{
		iSourisX = ev.clientX + document.body.scrollLeft - document.body.clientLeft;
		iSourisY = ev.clientY + document.body.scrollTop  - document.body.clientTop;
	}
	
	//si on a un élément en train d'être déplacé (pour éviter qu'il ne soit mis en surbrillance)
	if(eElementDeplace) return false;
}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop  - document.body.clientTop};
}

function mouseDown(ev){
	//on récupère l'objet représentant les évênements
	ev = ev || window.event;
	
	//on renseigne le bouton de la souris qui est enfoncé
	iBoutonSouris = ev.which || ev.button;
	
	//on récupère l'élément sous la souris
	var target = ev.target || ev.srcElement;
	
	//si l'élément a des actions sur le click, return false pour ne pas surligner de texte dans la page
	if(target.onmousedown){
		return false;
	}
}

function mouseUp(ev){
	iBoutonSouris = 0;
}

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup = mouseUp;

//Gestion de la molette
function mouseWheel(event){
    var delta = 0;
    
    if (!event){
    	event = window.event;
    }
    
    if (event.wheelDelta){ /* IE/Opera. */
        delta = event.wheelDelta / 120;
        /** In Opera 9, delta differs in sign as compared to IE.
         */
        if (window.opera){
            delta = -delta;
        }
    }
    else if (event.detail){ /** Mozilla case. */
        /** In Mozilla, sign of delta is different than in IE.
         * Also, delta is multiple of 3.
         */
        delta = -event.detail / 3;
    }
    
    /** If delta is nonzero, handle it.
     * Basically, delta is now positive if wheel was scrolled up,
     * and negative, if wheel was scrolled down.
     */
    if (delta){
        if (handle(delta)){
        	return true;
        }
    }
    
    /** Prevent default actions caused by mouse wheel.
     * That might be ugly, but we handle scrolls somehow
     * anyway, so don't bother here..
     */
    if (event.preventDefault){
        event.preventDefault();
    }
    
	event.returnValue = false;
}

/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener){
	/** DOMMouseScroll is for mozilla. */
	window.addEventListener('DOMMouseScroll', mouseWheel, false);
}

/** IE/Opera. */
window.onmousewheel = document.onmousewheel = mouseWheel;

/*
Copier coller cette fonction dans le code pour définir des actions sur déplacement de la molette
function handle(delta) {
	if (delta < 0){
		
	}
	else{
		
	}
}*/