<!--

//____________ public vars
var _objFo = {
			pathImg:"", imgRight:"", imgLeft:"", offX:0, offY:0, friction:0.5
			,curX:0, curY:0, destX:0, destY:0, imgW:0
			,timFollow:null, box:null, img:null, isLeft:false
		}

//____________ public methods
function startFollowMouse(_idDivMouse, _pathImg, _imgRight, _imgLeft, _offX, _offY, _friction){
	//___ init vars
	_objFo.imgRight = _pathImg + _imgRight;
	_objFo.imgLeft = _pathImg + _imgLeft;
	_objFo.offX = _offX;
	_objFo.offY = _offY;
	_objFo.friction = _friction;
	_objFo.curX = _objFo.curY = _objFo.destX = _objFo.destY = 0;
	//___ build box
	if(document.getElementById){
		//alert("Ce navigateur comprend bien 'document.getElementById'");
		//________ create div
		_objFo.box = document.createElement("div");
		_objFo.box.setAttribute("id", _idDivMouse);
		var bst = _objFo.box.style;
		bst.position = "absolute";
		bst.left = "0px";
		bst.top = "0px";
		bst.zIndex = 99999;
		//________ create img
		_objFo.img = document.createElement("img");
		_objFo.img.src = _objFo.imgRight;
		_objFo.isLeft = false;
		_objFo.imgW = 10;
		//________ insert html
		_objFo.box.appendChild(_objFo.img);
		document.body.appendChild(_objFo.box);
   	}else{
		alert("Ce navigateur ne comprend pas 'document.getElementById'");
	}
	//___________ timer and mouse
	document.onmousemove = majPos;
	clearInterval(_objFo.timFollow);
	_objFo.timFollow = setInterval("doFollowMouse();", 40);
	//alert("document.getElementById : " + document.getElementById("debug"));
	//document.getElementById("debug").innerHTML = "dqsf : " + _objFo.box + "|" + bst;

}

Math.roundWith = function(num,n){		var p = Math.pow(10,n); return Math.round(num*p)/p;}


//_________________ private
_objFo.count = 0;

function majPos(evt){
	_objFo.destX = mouseX(evt);
	_objFo.destY = mouseY(evt);
	//document.getElementById("debug2").innerHTML = "majPos : " + destX + "|" + destY;
}

function doFollowMouse(){
	//alert("doFollow !");
	var dx = _objFo.destX - _objFo.curX;
	var dy = _objFo.destY - _objFo.curY;
	_objFo.curX = Math.roundWith(_objFo.curX + dx * _objFo.friction, 3);
	_objFo.curY = Math.roundWith(_objFo.curY + dy * _objFo.friction, 3);
	var nx = Math.round(_objFo.curX + _objFo.offX);
	var ny = Math.round(_objFo.curY + _objFo.offY);
	var bs = _objFo.box.style;
	if(parseInt(bs.left) != nx){		bs.left = nx+"px"; ++_objFo.count;}
	if(parseInt(bs.top) != ny)			bs.top = ny+"px";
	var k = dx < _objFo.imgW;
	if(k != _objFo.isLeft){		// change image direction
		_objFo.isLeft = k;
		_objFo.img.src = _objFo.isLeft ? _objFo.imgLeft : _objFo.imgRight;
	}
	//document.getElementById("debug").innerHTML = "doFollow : " + count + "|" + dx + "|" + curX;
}

function mouseX(evt){
	if(!evt) evt = window.event;
	var res = 0;
	if(evt.pageX)			res = evt.pageX;
	else if (evt.clientX)	res = evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	return parseInt(res);
}

function mouseY(evt){
	if(!evt) evt = window.event;
	var res = 0;
	if(evt.pageY)			res = evt.pageY;
	else if (evt.clientY)	res = evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	return parseInt(res);
}

-->