jQuery.noConflict(); // TODO: A virer
/*********** Defilement ***********/
// Capture la position de la souris (en X uniquement)
var mouse_x = 0;
function on_mouse_move(e) {
	if (e) mouse_x = e.pageX;
	else mouse_x = event.x + document.body.scrollLeft;
}
function listen_mouse_move() {
	if (document.addEventListener) // NS6 & FireFox
		document.addEventListener('mousemove', on_mouse_move, true);
	else {
		if (document.captureEvents) // NS4 - non teste !
			document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = on_mouse_move;
	}
}
// Fait defiler les pictos des familles et les avis
var defile1 = true;
var defile2 = true;
var speed1 = 0;
var speed2 = 0;
function defile_inc(elt, speed, need_for_speed, leftmax) {
	var accel = 2; // Acceleration max (vers la vitesse desiree)
	// Calcul de la nouvelle vitesse
	if (need_for_speed > speed + accel) speed += accel;
	else if (need_for_speed < speed - accel) speed -= accel;
	else speed = need_for_speed;
	// Deplacement en boucle
	elt = $(elt);
	var left = elt.scrollLeft + speed;
	if (left < 0) left += leftmax; // Boucle infinie a gauche
	else if (left >= leftmax) left -= leftmax; // Boucle infinie a droite
	elt.scrollLeft = left;
	return speed;
}
function defile_mouse(elt, speed, leftmax) {
	elt = $(elt);
	// TODO: Virer les appels a Prototype
	var x = (mouse_x - elt.cumulativeOffset().left) / elt.getDimensions().width; // Position X de la souris dans l'element, de 0.0 a 1.0
	var size = 0.4; // Taille des zones de defilement (ne pas utiliser une valeur trop proche de 0.5)
	var speed_max = 20.0; // Vitesse maximal aux bords (approximatif)
	if (x < size) // Si la sourie est dans la zone de defilement gauche, need_for_speed est negatif
		return defile_inc(elt, speed, Math.round((x / size - 1.0) * speed_max), leftmax);
	else {
		x = 1.0 - x; // Inversion de la coordonnee : 0.0 devient la doite et 1.0 la gauche
		if (x < size) // Si la sourie est dans la zone de defilement droite, need_for_speed est positif
			return defile_inc(elt, speed, Math.round((1.6 - x / size) * speed_max), leftmax);
	}
	return defile_inc(elt, speed, 0, leftmax);
}
function defile() {
	listen_mouse_move();
	var leftmax1 = $("familles").scrollWidth / 2;
	new PeriodicalExecuter(function(pe) { // TODO: Utiliser setInterval
		if (defile1)
			speed1 = defile_inc("familles", speed1, 1, leftmax1); // La vitesse par defaut est de 1 pixel
		else // Si la sourie est sur l'element
			speed1 = defile_mouse("familles", speed1, leftmax1);
	}, 0.03); // En secondes (soit une reactualisation toutes les 100 ms)
}
/*********** Animation plaque ***********/
jQuery(function($) {
	var expanded = false;
	$("#plaque").css({backgroundPosition: '-570px 0px'});
	$("#plaque-expand").click(function() {
		expanded = !expanded;
		if (expanded) {
			$("#plaque,#commande-express").stop(true).filter("#plaque").animate({backgroundPosition: '-10px 0px'}, 800, function() {
				if ($.browser.msie)
					$("#commande-express").show();
				else
					$("#commande-express").fadeTo(500, 1);
			});
		} else if ($.browser.msie) {
			$("#plaque,#commande-express").stop(true).filter("#commande-express").hide();
			$("#plaque").animate({backgroundPosition: '-570px 0px'}, 800);
		} else {
			$("#plaque,#commande-express").stop(true).filter("#commande-express").fadeTo(500, 0, function() {
				$("#plaque").animate({backgroundPosition: '-570px 0px'}, 800);
			});
		}
	});
});

