/*** Creation des variables ***/
if(!window.JSFX)
	JSFX=new Object();
JSFX.ImageZoomRunning = false;

JSFX.zoomOn = function(img, maxWidth, maxHeight)
{
	if(img)
	{
		if(img.state == null)
		{
			img.state = "OFF";
			img.index = 0;
			img.orgWidth =  img.width;
			img.orgHeight = img.height;

			if(img.mode == "ZOOMH")
			{
				if(maxWidth > 500)
				{
					img.viewWidth = 500;
					img.viewHeight = 500 *img.ratio;
				}
				else
				{
					img.viewWidth = maxWidth;
					img.viewHeight = maxHeight;
				}
				img.maxZoom  = img.viewWidth -img.orgWidth;
			}
			else
			{
				if(maxWidth > 500)
				{
					img.viewHeight = 500 *img.ratio;
					img.viewWidth = 500;
				}
				else
				{
					img.viewHeight = maxHeight;
					img.viewWidth = maxWidth;
				}
				img.maxZoom = img.viewHeight -img.orgHeight;
			}
			img.zoomStep = img.maxZoom /2;			
		}

		if(img.state == "OFF")
		{
			img.state = "ZOOM_IN";
			start_zooming();
		}
		else if( img.state == "ZOOM_IN_OUT"
			|| img.state == "ZOOM_OUT")
		{
			img.state = "ZOOM_IN";
		}
	}
}

JSFX.zoomIn = function(img, maxWidth, maxHeight)
{
	img.ratio = maxHeight /maxWidth;
	if(img.ratio >1)
	{
		img.mode = "ZOOMV";
	}
	else
	{
		img.mode = "ZOOMH";
	}
	JSFX.zoomOn(img, maxWidth, maxHeight);
}

JSFX.zoomOut = function(img)
{
	if(img)
	{
		if(img.state == "ON")
		{
			img.state = "ZOOM_OUT";
			start_zooming();
		}
		else if(img.state == "ZOOM_IN")
		{
			img.state = "ZOOM_IN_OUT";
		}
	}
}

function start_zooming()
{
	if(!JSFX.ImageZoomRunning)
		ImageZoomAnimation();
}

JSFX.setZoom = function(img)
{
	if(img.mode == "ZOOMH")
	{
		img.width  = img.orgWidth + img.index;
		img.height  = img.orgHeight + img.index;


		if(img.height > img.viewHeight)
			img.height = img.viewHeight;	
	}
	else
	{
		img.width  = img.orgWidth  + img.index;
		img.height  = img.orgHeight  + img.index;
	

		if(img.width > img.viewWidth)
			img.width = img.viewWidth;
	}

}
	
function ImageZoomAnimation()
{
	JSFX.ImageZoomRunning = false;
	for(i=0 ; i<document.images.length ; i++)
	{
		var img = document.images[i];
		if(img.state)
		{
			if(img.state == "ZOOM_IN")
			{
				img.index+=img.zoomStep;
				if(img.index > img.maxZoom)
					img.index = img.maxZoom;

				JSFX.setZoom(img);

				if(img.index == img.maxZoom)
					img.state="ON";
				else
					JSFX.ImageZoomRunning = true;
			}
			else if(img.state == "ZOOM_IN_OUT")
			{
				img.index+=img.zoomStep;
				if(img.index > img.maxZoom)
					img.index = img.maxZoom;

				JSFX.setZoom(img);
	
				if(img.index == img.maxZoom)
					img.state="ZOOM_OUT";
				JSFX.ImageZoomRunning = true;
			}
			else if(img.state == "ZOOM_OUT")
			{
				img.index-=img.zoomStep;
				if(img.index < 0)
					img.index = 0;

				JSFX.setZoom(img);

				if(img.index == 0)
					img.state="OFF";
				else
					JSFX.ImageZoomRunning = true;
			}
		}
	}
	if(JSFX.ImageZoomRunning)
		setTimeout("ImageZoomAnimation()", 40);
}
