// JavaScript Document
/**
 * Caroussel Scroll v1.0: Automatic Mouse scrolling area
 *
 * Caroussel Scroll is (c) 2008 pitoo.com and is free to use or modify
 * http://www.pitoo.com
 *
 */

	function caroussel_scroll(even)
	{
		if (!even) 				var even = window.event;
		
		var myImagesXShift = 20;
		var myImagesYShift = 0;
		var myMouseXPos = 0;
		var myMouseYPos = 0;
		var myImagesXPos = 0;
		var myImagesYPos = 0;
		var myFrameXPos = getElementPosition(document.getElementById("caroussel-frame")).x;
		var myFrameYPos = getElementPosition(document.getElementById("caroussel-frame")).y;
		var myFrameWidth = document.getElementById("caroussel-frame").offsetWidth - (myImagesXShift*2);
		var myFrameHeight = document.getElementById("caroussel-frame").offsetHeight - (myImagesYShift*2);
		var myImagesWidth = document.getElementById("caroussel-images").offsetWidth;
		var myImagesHeight = document.getElementById("caroussel-images").offsetHeight;
		
		var myHSlideArea = myImagesWidth - myFrameWidth;
		var myVSlideArea = myImagesHeight - myFrameHeight;
		
		// position de la souris dans le Frame
		if (even.pageX)
		{
			myMouseXPos = even.pageX - myFrameXPos;
			myMouseYPos = even.pageY - myFrameYPos;
		}
		else if (even.clientX) 	
		{
			myMouseXPos = even.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - myFrameXPos;
			myMouseYPos = even.clientY + document.body.scrollTop + document.documentElement.scrollTop - myFrameYPos;
		}
		
		myImagesXPos = ((myMouseXPos - myImagesXShift) / myFrameWidth * myHSlideArea) - myImagesXShift;
		myImagesYPos = ((myMouseYPos - myImagesYShift) / myFrameHeight * myVSlideArea) - myImagesYShift;

		if (myHSlideArea > 0) document.getElementById("caroussel-images").style.left = (0-myImagesXPos)+'px';
		if (myVSlideArea > 0) document.getElementById("caroussel-images").style.top = (0-myImagesYPos)+'px';
	}

	function getElementPosition(elem)
	{
		var posX = 0;
		var posY = 0;
				  
		while(elem != null) {  //Loop through all of the parents until we get to the top
		posX += elem.offsetLeft;  //Grab the offset distance from the current element to its parent element
		posY += elem.offsetTop;
		elem = elem.offsetParent; //switch to the parent element and repeat
		}
										  
		return { x : posX, y : posY };  //return our object
	}
