/**
 * Efecto para desplazar de forma orizontal una serie de elementos
 */


/**
 * Mueve los elementos hacia la derecha
 */
function moveHorizontalDisplayToRight (horizontalDisplayFxObject)
	{

	horizontalDisplayFxObject.horizontalDisplayElements.each
		(
		function(item) 
			{
			item.horizontalDisplayToggleFx.pause();
			var left = item.getStyle('left').toInt();

			if(left>horizontalDisplayFxObject.horizontalDisplayXEnd)
				{
				item.setStyle('left',horizontalDisplayFxObject.horizontalDisplayXInit);
				left=horizontalDisplayFxObject.horizontalDisplayXInit;
				}
			
			item.horizontalDisplayToggleFx.toggleProperty('left', left, left+horizontalDisplayFxObject.horizontalDisplayDx,true);
			}
		);
	
	setTimeout(function(){moveHorizontalDisplayToRight(horizontalDisplayFxObject);}, horizontalDisplayFxObject.horizontalDisplayWaintTime);
	}

/**
 * Mueve los elementos hacia la izquirda
 */
function moveHorizontalDisplayToLeft (horizontalDisplayFxObject)
	{

	horizontalDisplayFxObject.horizontalDisplayElements.each
		(
		function(item) 
			{
			item.horizontalDisplayToggleFx.pause();
			var left = item.getStyle('left').toInt();

			if(left<horizontalDisplayFxObject.horizontalDisplayXEnd)
				{
				item.setStyle('left',horizontalDisplayFxObject.horizontalDisplayXInit);
				left=horizontalDisplayFxObject.horizontalDisplayXInit;
				}
			
			item.horizontalDisplayToggleFx.toggleProperty('left', left, left-horizontalDisplayFxObject.horizontalDisplayDx,true);
			}
		);
	
	setTimeout(function(){moveHorizontalDisplayToLeft(horizontalDisplayFxObject);}, horizontalDisplayFxObject.horizontalDisplayWaintTime);
	}

/**
 * Inicia un efecto de movimento horizontal
 */
function initHorizontalDisplayFx (elements, waintTime, toggleDuration)
	{
	var horizontalDisplayFxObject = new Object();
	
	var items =  $$(elements);

	
	if(items==null||items.length<=2)
		return;

	if(Browser&&Browser.ie6)
		toggleDuration = Math.round(toggleDuration/2);
		
	
	horizontalDisplayFxObject.horizontalDisplayElements = items;
	horizontalDisplayFxObject.horizontalDisplayWaintTime = waintTime;
	
	var left0 = items[0].getStyle('left').toInt(), left1 = items[1].getStyle('left').toInt();
	var widthElement = items[0].getStyle('width').toInt();
	var toRight = left0>left1;

	horizontalDisplayFxObject.horizontalDisplayDx = Math.abs(left0-left1);
	horizontalDisplayFxObject.horizontalDisplayXEnd = left0;

	var toggleOptions = {duration: toggleDuration};
		
	items.each
		(
		function(item) 
			{
			
			item.horizontalDisplayToggleFx = new Fx.Toggle(item,toggleOptions);
			item.setStyle('left',left0);
			if(toRight)
				left0-=horizontalDisplayFxObject.horizontalDisplayDx;
			else
				left0+=horizontalDisplayFxObject.horizontalDisplayDx;
			
			}
		);

	horizontalDisplayFxObject.horizontalDisplayXInit = items[items.length-1].getStyle('left').toInt();

	if(toRight)
		setTimeout(function(){moveHorizontalDisplayToRight(horizontalDisplayFxObject);}, horizontalDisplayFxObject.horizontalDisplayWaintTime);
	else
		setTimeout(function(){moveHorizontalDisplayToLeft(horizontalDisplayFxObject);}, horizontalDisplayFxObject.horizontalDisplayWaintTime);
	
	}
